saldoman has asked for the wisdom of the Perl Monks concerning the following question:
Check out the perl faqs which specifically address this situation.
perldoc -f system [download]
It lists how to inspect the return value from a system call.
if ($? == -1) { print "failed to execute: $!\n"; } elsif ($? & 127) { printf "child died with signal %d, %s coredump\n" ($? & 127), ($? & 128) ? 'with' : 'without'; } else { printf "child exited with value %d\n", $? >> 8; } [download]
Modify to suit.
system("/my/shell/prog") && die "System failed: $!" [download]