I'd tend towards pointing at `man perlfunc`, which is the same information, but available locally.
> I do not understand why the original command's error code (127 in our case) The command does not given an error in this case, the system call does. The result is Perl's system() function returns -1 and Perl does signed division, so -1/256=0. Since I'm looking at the MIME tools, a patch is attached. -- (\___(\___(\______ --=> 8-) EHM <=-- ______/)___/)___/) \BS ( | ehem+sig...@m5p.com PGP 87145445 | ) / \_CS\ | _____ -O #include <stddisclaimer.h> O- _____ | / _/ 8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445
--- run-mailcap.orig 2015-08-02 15:57:49.000000000 -0700 +++ run-mailcap 2015-11-01 14:42:18.000000000 -0800 @@ -537,11 +537,20 @@ $res = 0; } else { $res = system $comm; - $res = int($res/256); - } - if ($res != 0) { - print STDERR "Warning: program returned non-zero exit code \#$res\n"; - $retcode = $res; + if ($res != 0) { + if (!($res & 0xFF)) { + print STDERR "Warning: program returned non-zero exit code \#$res\n"; + $retcode = $res >> 8; + } elsif ($res == -1) { + print STDERR "Error: program failed to execute: $!\n"; + $retcode = -1; + } else { + my $signal = $? & 0x7F; + my $core = ($? & 0x80) ? ' (core dumped)' : ''; + print STDERR "Warning: program died on signal ${signal}${core}\n"; + $retcode = -1; + } + } } $done=1; unlink $tmpfile if $tmpfile;