#!/usr/bin/perl # http://perlmonks.org/?node_id=1137416 use strict; use warnings; $| = 1; for my $i (1..33) { $i > 10 and warn("waiting...\n"), wait; fork or warn("client $i started\n"), sleep(60), die("client $i ended\n"); sleep 5; } 1 while wait > 0; # reap the rest warn "all clients finished\n";