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