wait Behaves like wait(2) on your system: it waits for a child process to terminate and returns the pid of the deceased process, or -1 if there are no child processes. The status is returned in $? and "${^CHILD_ERROR_NATIVE}". Note that a return value of -1 could mean that child processes are being automatically reaped, as described in perlipc. If you use "wait" in your handler for $SIG{CHLD}, it may accidentally wait for the child created by qx() or system(). See perlipc for details. Portability issues: "wait" in perlport.