note BrowserUk <blockquote><i></i></blockquote> <p>Try this:
<code> #! perl -slw use strict; use threads; use threads::Q; use
threads::shared; use LWP::Simple; sub outputter { my( $fname,
$href, $n ) = @_; open my $O, '>:utf8', $fname or die $!; for my
$id ( 1 .. $n ) { sleep 1 until exists $href->{ $id }; lock
%$href; print $O "$id\t::", delete $href->{ $id }; } close $O; }
sub getter { my $tid = threads->tid; my( $Q, $href ) = @_;
while( $_ = $Q->dq ) { my( $id, $mac ) = split $;, $_; my
$content = get( "http://$mac/" ); lock %$href; $href->{ $id } =
$content // "Nothing from $id:$mac\n"; } } our $T //= 8; my
$iFile = $ARGV[0] or die "No input filename"; my $machines =
(split ' ', `wc -l $iFile` )[0]; my %res :shared; my $Q =
threads::Q->new( 128 ); my $outputter = threads->create(
\&outputter, '1021943.log', \%res, $machines ) or die $!;
threads->create( \&getter, $Q, \%res )->detach for 1 .. $T; open
I, '<', $iFile or die $!; my $n = 0; chomp(), $Q->nq( join $;,
++$n, $_ ) while <I>; close I; $Q->nq( unde