my $manager = new Parallel::ForkManager( 20 ); #### $manager->set_max_procs( $newMaximumProcs ); #### foreach my $command (@commands) { $manager->start and next; system( $command ); $manager->finish; }; #### $manager->run_on_start( sub { my ($pid,$ident) = @_; print "Starting processes $ident under process id $pid\n"; } ); #### $manager->run_on_finish( sub { my ( $pid, $exit_code, $ident, $signal, $core ) = @_; if ( $core ) { print "Process $ident (pid: $pid) core dumped.\n"; } else { print "Process $ident (pid: $pid) exited print "with code $exit_code and signal $signal.\n"; } } ); #### $manager->wait_on_finish( sub { print "Waiting ... \n"; }, 3 );