HTTP GET
examples/forks/httpget.pl
use strict; use warnings; use Time::HiRes qw(time); use lib '.'; use Task; use ForkedHTTP; binmode(STDOUT, ":utf8"); main(); sub main { my ($filename, $parallels, $limit) = @ARGV; die "Usage: $0 FILENAME PARALLEL LIMIT\n" if not defined $limit; open my $fh, '<', $filename or die; my @urls = <$fh>; chomp @urls; if ($limit and $limit < scalar @urls) { @urls = @urls[0..$limit-1]; } #print scalar @urls; my %results; my $start = time; if ($parallels == 0) { for my $url (@urls) { $results{$url} = Task::get_title($url); } } else { %results = ForkedHTTP::get_titles($parallels, @urls); } for my $url (@urls) { print "$url $results{$url}\n"; } my $end = time; my $elapsed = $end-$start; printf "Elapsed time %.2f\n", $elapsed; }