See the current Perl documentation for waitpid.
Here is our local, out-dated (pre-5.6) version:
waitpid - wait for a particular child process to die
Waits for a particular child process to terminate and returns the pid of
the deceased process, or
-1 if there is no such child process. The status is returned in
$?. If you say
use POSIX ":sys_wait_h"; #... waitpid(-1,&WNOHANG);
then you can do a non-blocking wait for any process. Non-blocking wait is available on machines supporting either the
wait4(2) system calls. However, waiting for a particular pid with
0 is implemented everywhere. (Perl emulates the system call by remembering
the status values of processes that have exited but have not been harvested
by the Perl script yet.)
See the perlipc manpage for other examples.