use POSIX ":sys_wait_h"; $SIG{CHLD} = sub { my $kid; do { $kid = waitpid(-1,&WNOHANG); } until $kid == -1; }