sub scoring { return 1; } my @results = (); $pm->run_on_finish( sub { my ($pid, $exit_code, $ident ) = @_; $results[$ident] = $exit_code; } ); for ( my $i = 0; $i < 1000000; $i++ ) { my $pid = $pm->start($i) and next; my $result = scoring(); $pm->finish($result); } $pm->wait_all_children;