in reply to Help checking program return values

Generally, you catch signals by defining a handler. See perlipc (maybe lookat at $SIG{CHLD}). This at least will provide you a place to start. I've never attempted to do what you are with a child process. This has surely been solved somewhere in CPAN.