gyre007 has asked for the wisdom of the Perl Monks concerning the following question:
"extern.pl" and "extern2.pl" are scripts that I want to execute from the main script - as child processes... extern.pl exits with the value "2" and extern2.pl exits with the value "1" I would expect that in $exit_code2 would be stored the exit value from the extern2.pl - "1" Problem is that it does not happen... In variable $? stays the exit value of script extern.pl and doesn not get overwritten byt the exit value of extern2.pl script. Does anyone know how can I get the exit value of second executed scrip "extern2.pl"? Thanks a LOT gyre#!/usr/bin/perl use IPC::Open3; use POSIX qw( :sys_wait_h ); my $pid; my $cmd = "extern.pl"; my $cmd2 = "extern2.pl"; my $exit_code = 0; my $exit_code2 = 0; my $help = 0; my $help2 = 0; $pid = open3(*MMRET_IN, *MMRET_OUT, *MMRET_ERR, $cmd); print "Process spawned with PID = $pid \n"; $help = waitpid($pid,WNOHANG); print "HELP_VALUE is $help\n"; $exit_code = $? >> 8; print "ExitCODE is $exit_code \n"; $pid2 = open3(*MMRET_IN2, *MMRET_OUT2, *MMRET_ERR2, $cmd2); print "Process spawned with PID = $pid2 \n"; $help2 = waitpid($pid2,WNOHANG); print "HELP_VALUE is $help2\n"; $exit_code2 = $? >> 8; print "ExitCODE is $exit_code2 \n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: IPC problem
by almut (Canon) on Oct 18, 2007 at 13:25 UTC | |
by gyre007 (Novice) on Oct 18, 2007 at 13:32 UTC | |
by almut (Canon) on Oct 18, 2007 at 13:52 UTC | |
by gyre007 (Novice) on Oct 18, 2007 at 13:57 UTC | |
by gyre007 (Novice) on Oct 18, 2007 at 14:02 UTC | |
by almut (Canon) on Oct 18, 2007 at 14:22 UTC | |
by gyre007 (Novice) on Oct 18, 2007 at 13:52 UTC |