#!usr/bin/perl use Parallel::ForkManager; my $MAX_PROCESSES=10; $pm = new Parallel::ForkManager($MAX_PROCESSES); $pm->run_on_finish( sub { my ($pid, $exit_code, $ident, $signal, $core) = @_; print "$pid $exit_code $ident $signal $core\n"; } ); foreach ( a .. f ) { my $pid = $pm->start($_) and next; my $exit_code = 40; $pm->finish($exit_code); }