use Parallel:ForkManager; my $pm=new Parallel::ForkManager(15); foreach my $processNumber (1 .. 15) { $pm->start and next; ; $pm->finish; } $pm->wait_all_children;