#!/usr/bin/env perl use strict; use warnings; use threads; use MCE::Loop; use MCE::Shared; use LWP::Simple; use feature qw(say); use constant AMOUNT => 0; my $result = MCE::Shared->hash; my @urls = qw(http://perlmonks.org http://www.whitehouse.org ); MCE::Loop::init { max_workers => 'auto', chunk_size => 1 }; my $fetch = sub { head(shift) }; mce_loop { my @data = $fetch->($_); sleep AMOUNT; $result->set( $_ => \@data ); } @urls; { no warnings qw(uninitialized); my $iter = $result->iterator(); while ( my ( $url, $data ) = $iter->() ) { say $url; say for @$data; say q(---); } } __END__