The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Proc::ChildError - Explain process child error


This document describes version 0.04 of Proc::ChildError (from Perl distribution Proc-ChildError), released on 2016-01-06.


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


Process::Status provides a lightweight OO interface for $?. I recommend this module now over Proc::ChildError.

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.


Please visit the project's homepage at


Source repository is at


Please report any bugs or feature requests on the bugtracker website

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.


perlancar <>


This software is copyright (c) 2016 by

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.