my $pm = Parallel::ForkManager->new(NUM_CHILDREN); for (1..NUM_CHILDREN) { $pm->start and next; my $client_sock = $server_sock->accept or die $!; ... $pm->finish; }