#!/usr/bin/perl -Tw use strict; use HTTP::Request::Common qw(GET); use POE qw(Component::Client::HTTP); use vars qw(@url); # Create a POE HTTP client component POE::Component::Client::HTTP->spawn( 'Timeout' => 20 ); # Create sessions to be used for HTTP requests for (1..3) { POE::Session->create( inline_states => { _start => \&client_start, got_response => \&client_got_response } ); } $poe__kernel->run(); sub client_start { my ($kernel, $heap) = @_[KERNEL, HEAP]; $kernel->post( 'weeble', 'request', got_response => GET 'http://URL_HERE/' ); warn 'STARTED'; } sub client_got_response { my($heap, $request_packet, $response_packet) = @_[HEAP, ARG0, ARG1]; my $http_request = $request_packet->[0]; my $http_response = $response_packet->[0]; print "REQUEST\n",$http_request->headers_as_string(); print "RESPONSE\n",$http_response->headers_as_string(); } #### foreach my $url (@url) { $poe_kernel->post( 'weeble', 'request', got_response => GET $url ); }