All pastes #1357957 Raw Edit

Someone

public text v1 · immutable
#1357957 ·published 2009-03-11 04:11 UTC
rendered paste body
#!/usr/bin/env perl

use strict;
use warnings;

use threads;
use threads::shared;
use Thread::Queue;
use LWP::UserAgent;

my $agent = LWP::UserAgent->new();

my $count = shift || 4;
my $queue = Thread::Queue->new();
my @workers;

for ( 1 .. $count ) {
    push @workers, threads->create( 
        sub { 
            while ( my $task = $queue->dequeue() ) {
		warn $task;
		my $res = $agent->get($task);
		print $res->content;		
            }
        }
    );
}

while ( <> ) {
    chomp;
    $queue->enqueue( $_ );
}

$queue->enqueue( undef ) for 1 .. $count; 
$_->join() for @workers;