# &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
# 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;
} else {
open(STDERR, ">&STDOUT") if (fileno(STDERR) != fileno(STDOUT));
}
- exec @cmd;
-
local($")=(" ");
+ exec @cmd;
die "open2: exec of @cmd failed";
}