in reply to
Proc::Simple - exit_status function returns -1
Please update your Module.
I've also seen this bug and posted a patch
which was accepted and merged into version 1.28.
Title: exit_status() can fail to return valid exit state after sufficently long runtime.
A main process that runs sufficiently long might get an 'undef' or -1
form exit_status() instead of the real execution status.
If a Proc::Simple variable/object is DESTROYed while the associated
Proc::Simple-process has already terminated, the PID is unnecessarily
remembered in %DESTROYED for later reaping.
If another process re-uses the PID (e.g. after the OS' PID wrap-around)
the process is reaped by sub THE_REAPER and the execution state is lost
since the %DESTROYED hash is checked before the %EXIT_STATUS hash there.