use Parallel::ForkManager; use Shell; my @list = glob("*.fasta"); my $pm = new Parallel::ForkManager(10); foreach my $list (@list) { my $pid = $pm->start and next; my $base = ( split( /\./, $list) )[0]; system("perl mycode.pl $base > ~/MyPerl/result_ans/$base.out"); $pm->finish; # Terminates the child process }