http://qs1969.pair.com?node_id=443894


in reply to Re^3: delayed die and open3
in thread delayed die and open3

Close I think but there must be more to it. If that is the case why does the child not run on through the rest of the code when the die is not in effect like fork would.

# if forked why did the child not print done too ? nph>perl -MIPC::Open3 -le'print "dad: $$";eval{$pid=open3(*IN,*OUT,*ER +R,@ARGV)};print "kid: $pid";print "$$ $@" if($@);print <OUT>;print "d +one $$"' 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 <OUT>;print "done $$"' echo Hi dad: 33442 kid: 27366 done 33442 nph>kid: 0 done 27366 nph>

Cheers,
R.

Pereant, qui ante nos nostra dixerunt!

Replies are listed 'Best First'.
Re^5: delayed die and open3
by RazorbladeBidet (Friar) on Mar 31, 2005 at 17:24 UTC
    Because it's running exec as the child:
    ... exec @cmd # XXX: wrong process to croak from or croak "$Me: exec of @cmd failed"; ...
    which will abandon the process (unless it dies)
    --------------
    "But what of all those sweet words you spoke in private?"
    "Oh that's just what we call pillow talk, baby, that's all."