Eliminate use of $& to avoid runtime penalty
Perl 5 Porters [Wed, 1 May 1996 04:10:28 +0000 (04:10 +0000)]
lib/open2.pl
lib/open3.pl

index dcd68a8..7d3b970 100644 (file)
@@ -28,8 +28,8 @@ sub main'open2 {
 
     # force unqualified filehandles into callers' package
     local($package) = caller;
-    $dad_rdr =~ s/^[^']+$/$package'$&/;
-    $dad_wtr =~ s/^[^']+$/$package'$&/;
+    $dad_rdr =~ s/^([^']+$)/$package'$1/;
+    $dad_wtr =~ s/^([^']+$)/$package'$1/;
 
     local($kid_rdr) = ++$fh;
     local($kid_wtr) = ++$fh;
index 7c8b6ae..03e151c 100644 (file)
@@ -46,9 +46,9 @@ sub main'open3 {
 
     # force unqualified filehandles into callers' package
     local($package) = caller;
-    $dad_wtr =~ s/^[^']+$/$package'$&/;
-    $dad_rdr =~ s/^[^']+$/$package'$&/;
-    $dad_err =~ s/^[^']+$/$package'$&/;
+    $dad_wtr =~ s/^([^']+$)/$package'$1/;
+    $dad_rdr =~ s/^([^']+$)/$package'$1/;
+    $dad_err =~ s/^([^']+$)/$package'$1/;
 
     local($kid_rdr) = ++$fh;
     local($kid_wtr) = ++$fh;