FUNCTIONS explain_child_error([\%opts, ]$child_error, $os_error) => STR Produce a string description of an error number. $child_error defaults to $? if not specified. $os_error defaults to $! if not specified. The algorithm is taken from perldoc -f system. Some sample output: failed to execute: No such file or directory (-1) died with signal 15, with coredump exited with value 3 An options hashref can be specified as the first argument to add information. Currently known keys: * prog => str Program name/path, to include in error messages: /usr/bin/foo failed to execute: Permission denied (-1) foo died with signal 15, with coredump /usr/bin/foo exited with value 3 SEE ALSO IPC::System::Simple provides a replacement for Perl's system(), with the difference that it will print a diagnostic error message similar to what Proc::ChildError provides. You only need to do use IPC::System::Simple qw(system) and use system() as usual. Recommended.