use warnings; use strict; use Parallel::ForkManager; use 5.010; my $pm=new Parallel::ForkManager(50); use Fcntl qw(:flock SEEK_END); $pm->run_on_finish(sub{ my (undef, undef, undef, undef, undef, $res_ref) = @_; my ($res, $line) = @$res_ref; if ($res == 1) { open my $outf, ">>", "outf"; flock($outf, LOCK_EX) or next; seek($outf, 0, SEEK_END); say $outf $line; say $line; flock($outf, LOCK_UN); } }); my $i = 1; while (1) { $i++; $pm->start and next; my $res; my $page=""; $page = `curl -s http://thepiratebay.se/torrent/$i -m 120` while ($page !~ /Not Found}) { $res = 0; } else { $res = 1; my ($title) = $page =~ /