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 for the child created by qx() or system(). See perlipc for details.

Portability issues: "wait" in perlport.