use Parallel::ForkManager; my $max_processes = '10'; my $pm = Parallel::ForkManager->new($max_processes); my $array = 'list.txt'; open my $handle, '<', $array; chomp(my @array = <$handle>); close $handle; for my $printme (@array) { my $pid = $pm->start and next; print $printme; $pm->finish; } $pm->wait_all_children;