pf-tools commit: r867 [ccaillet-guest] - /branches/next-gen/lib/PFTools/Update/Addmount.pm
parmelan-guest at users.alioth.debian.org
parmelan-guest at users.alioth.debian.org
Tue Aug 31 11:50:54 UTC 2010
Author: ccaillet-guest
Date: Tue Aug 31 11:50:52 2010
New Revision: 867
URL: http://svn.debian.org/wsvn/pf-tools/?sc=1&rev=867
Log:
Optims: beter with named backreference in regex
Modified:
branches/next-gen/lib/PFTools/Update/Addmount.pm
Modified: branches/next-gen/lib/PFTools/Update/Addmount.pm
URL: http://svn.debian.org/wsvn/pf-tools/branches/next-gen/lib/PFTools/Update/Addmount.pm?rev=867&op=diff
==============================================================================
--- branches/next-gen/lib/PFTools/Update/Addmount.pm (original)
+++ branches/next-gen/lib/PFTools/Update/Addmount.pm Tue Aug 31 11:50:52 2010
@@ -119,25 +119,18 @@
my $value = ( $key eq 'options' )
? $fs_entry->{$key} || $DEFAULT_OPTIONS
: $fs_entry->{$key};
- my $val_addr = $value;
- if ( $key eq 'options' ) {
- if ( $val_addr =~ /ip=/ ) {
- $val_addr =~ s/^(.*,)?ip=([^,]+)(,.*)?$/$2/;
- }
- else {
- next;
- }
- }
- else {
- $val_addr =~ s/^([^\:]+):(.+)$/$1/;
- }
- my $val_ip = __Get_ip_host_from_GLOBAL ( $val_addr, $param->{'global_config'} ) if ( defined $val_addr );
- return 1 if ( ! defined $val_ip );
- if ( $key eq 'options' ) {
- $value =~ s/^(.*,)?ip=([^,]+)(,.*)?$/$1ip=$val_ip$3/;
- }
- else {
- $value =~ s/^([^:]+):(.+)$/$val_ip:$2/;
+ my $val_addr = $value;
+ my $regex = ( $key eq 'options' )
+ ? '^(?<pre>.*,)?(ip=(?<ip>[^,]+))?(?<suf>,.*)?$'
+ : '^(?<ip>[^\:]+):(?<suf>.+)$';
+ $val_addr =~ s/$regex/$+{ip}/;
+ if ( defined $val_addr && $val_addr ne $value ) {
+ my $val_ip = __Get_ip_host_from_GLOBAL ( $val_addr, $param->{'global_config'} );
+ return 1 if ( ! defined $val_ip );
+ $regex = ( $key eq 'options' )
+ ? '^(?<pre>(.*,)?(ip=)?)(?<ip>[^,]+)?(?<suf>,.*)?$'
+ : '^(?<pre>\s*)(?<ip>[^\:]+):(?<suf>.+)$';
+ $value =~ s/$regex/$+{pre}$val_ip$+{suf}/;
}
$fs_entry->{$key} = $value;
}
More information about the pf-tools-commits
mailing list