c:\test>perl #!/usr/bin/perl -l my $cmd = q(perl -e "chomp(my $ret = ); exit $ret+1"); my $pid = open CMD, '|-', $cmd or die $!; print CMD 98; close CMD; print "status from close: ", $? >> 8; waitpid $pid, 0; print "status from waitpid: ", $? >> 8; ^Z status from close: 99 status from waitpid: 99