for my $job ( @jobs ) { my $pid = fork // die 'fork failed'; if( $pid ) { async{ waitpid $pid; }->detach; } else { dojob( $job ); } } #### for my $job ( @jobs ) { async \&dojob, $job; } while( threads->list( 1 ) ) { $_->join for threads->list( 0 ); }