# if forked why did the child not print done too ? nph>perl -MIPC::Open3 -le'print "dad: $$";eval{$pid=open3(*IN,*OUT,*ERR,@ARGV)};print "kid: $pid";print "$$ $@" if($@);print ;print "done $$"' ec> dad: 42996 kid: 22394 Hi done 42996 # fork does ... nph>perl -MIPC::Open3 -le'print "dad: $$";eval{$pid=fork};print "kid: $pid";print "$$ $@" if($@);print ;print "done $$"' echo Hi dad: 33442 kid: 27366 done 33442 nph>kid: 0 done 27366 nph>