# AnyEvent::Curl::Multi, did about 33mbps use strict; use warnings; use EV; use AnyEvent; use AnyEvent::Curl::Multi; use HTTP::Request; my $quit = 0; sub ctrlc { $quit = 1; } $SIG{INT} = \&ctrlc; my @urls = ; my $client = AnyEvent::Curl::Multi->new; $client->max_concurrency(100); $client->reg_cb(response => sub { my ($client, $request, $response, $stats) = @_; my $url = $request->uri; my $size = length $response->content; print "finish: $url, $size bytes\n"; }); $client->reg_cb(error => sub { my ($client, $request, $errmsg, $stats) = @_; # ... }); while(!$quit) { my $url = $urls[int(rand(int(@urls)))]; chomp $url; print "start: $url\n"; my $request = HTTP::Request->new('GET',$url); $client->request($request); EV::loop EV::LOOP_NONBLOCK; } __DATA__ urls...