eval { $pid = open3("<&STDIN", \*OUTPUT, \*OUTERR, 'perl return.pl') ; $val = waitpid(-1,0); # <--- added this line }; ... print "---pid$n"; print $pid . $n; # <--- prints pid print "---val$n"; print $val . $n; # <--- prints pid print "---\$?$n"; print $? >>8, $n; # <--- prints exit val