in reply to Re^3: Doubled print with eval and open3
in thread Doubled print with eval and open3
pid is 18693 No error
The error occured in the forked child process, so the exec or die would get sent to the file handle piped to $ERROR, and only the child's $! would be affected if the fork succeeded.
ikegami erases the paragraph he was writting.
Oo! I just figured it out!
The OP must be on a system where fork is used ($^O eq 'os2' || $^O eq 'MSWin32' is false). The fork succeeds, but the exec fails. He's getting output from both the child and the parent! Fix:
my $pid = eval { open3($WRITE, $READ, $ERROR, "$command") }; if (!$pid) { # We're in the child. # The fork succeeded, but the exec failed. POSIX::_exit($!); } ...
Update: Oops! Looks like almut beat me to it here
|
|---|