in reply to System call constantly dying

AFAIR, system returns a combination of the actual return code and any signal that caused the call to die (as returned by wait) where the return code is the higher and the signal is the lower 8 bits of the 16 bit status return value.

Hence typical error detection avoids the process control signal data by shifting it out of the way before testing the return status - along the lines of...

my $ret = system "args"; die "system($args) failed - status code: $ret" if $ret << 8;

HTH,

Update Thanx to pc88mer for noticing I got the wrong shift - should've read $ret >> 8 ... doh!!!

At last, a user level that overstates my experience :-))