perl 5.003_04: lib/Test/Harness.pm
[p5sagit/p5-mst-13.2.git] / lib / open3.pl
index f3d8138..03e151c 100644 (file)
@@ -1,6 +1,8 @@
 # &open3: Marc Horowitz <marc@mit.edu>
 # derived mostly from &open2 by tom christiansen, <tchrist@convex.com>
 #
+# $Id: open3.pl,v 1.1 1993/11/23 06:26:15 marc Exp $
+#
 # usage: $pid = open3('wtr', 'rdr', 'err' 'some cmd and args', 'optarg', ...);
 #
 # spawn the given $cmd and connect rdr for
@@ -44,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;
@@ -88,9 +90,8 @@ sub main'open3 {
        } else {
            open(STDERR, ">&STDOUT") if (fileno(STDERR) != fileno(STDOUT));
        }
-       exec @cmd;
-
        local($")=(" ");
+       exec @cmd;
         die "open2: exec of @cmd failed";
     }