Try this test program on *nix and see if it happens to you too...
my $ret1 = `date`; my $exit1 = $?; print STDERR "exit1=$exit1 ret1=$ret1"; my $pid; if($pid = fork) { $SIG{CHLD} = sub {wait}; print STDERR "$$: parent pid=$pid\n"; }elsif (defined $pid) { print STDERR "$$: child\n"; setpgrp(0, $$); exec "exec sleep 500 &" || die "Bad exec $!"; exit; } foreach my $i (1..5) { my $ret2 = `date`; my $exit2 = $?; print STDERR "exit2=$exit2 ret2=$ret2"; }
In reply to $? stuck returning -1... by cmv
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |