Eliminate $& to avoid runtime penalty
Perl 5 Porters [Wed, 1 May 1996 04:10:19 +0000 (04:10 +0000)]
lib/IPC/Open2.pm
lib/IPC/Open3.pm

index 243412e..62ec69b 100644 (file)
@@ -80,8 +80,8 @@ sub open2 {
 
     # force unqualified filehandles into callers' package
     local($package) = caller;
-    $dad_rdr =~ s/^[^']+$/$package'$&/ unless ref $dad_rdr;
-    $dad_wtr =~ s/^[^']+$/$package'$&/ unless ref $dad_wtr;
+    $dad_rdr =~ s/^([^']+$)/$package'$1/ unless ref $dad_rdr;
+    $dad_wtr =~ s/^([^']+$)/$package'$1/ unless ref $dad_wtr;
 
     local($kid_rdr) = ++$fh;
     local($kid_wtr) = ++$fh;
index dbf5562..fc93ab5 100644 (file)
@@ -83,9 +83,9 @@ sub open3 {
 
     # force unqualified filehandles into callers' package
     my($package) = caller;
-    $dad_wtr =~ s/^[^:]+$/$package\:\:$&/ unless ref $dad_wtr;
-    $dad_rdr =~ s/^[^:]+$/$package\:\:$&/ unless ref $dad_rdr;
-    $dad_err =~ s/^[^:]+$/$package\:\:$&/ unless ref $dad_err;
+    $dad_wtr =~ s/^([^:]+$)/$package\:\:$1/ unless ref $dad_wtr;
+    $dad_rdr =~ s/^([^:]+$)/$package\:\:$1/ unless ref $dad_rdr;
+    $dad_err =~ s/^([^:]+$)/$package\:\:$1/ unless ref $dad_err;
 
     my($kid_rdr) = ++$fh;
     my($kid_wtr) = ++$fh;