my @ar = (); use Parallel::ForkManager; my $pm = new Parallel::ForkManager(3); foreach my $rec (@urls) { # Forks and returns the pid for the child: my $pid = $pm->start and next; fill out @ar processing @urls $pm->finish; # Terminates the child process }