use Proc::Queue size => 3; my $mech = WWW::Mechanize->new(timeout => 90); while (@urllist) { $pid = fork; if(defined ($pid) and $pid==0) { $mech->get($url); print "$mech->content()->as_HTML(); exit(0); } 1 while waitpid(-1, WNOHANG)>0; # reaps childs } #### use Proc::Queue size => 3; while (@urllist) { $pid = fork; if(defined ($pid) and $pid==0) { my $mech = WWW::Mechanize->new(timeout => 90); $mech->get($url); print "$mech->content()->as_HTML(); exit(0); } 1 while waitpid(-1, WNOHANG)>0; # reaps childs }