http://qs321.pair.com?node_id=11124162


in reply to script hanging at thread start

When I run:

use warnings; use strict; use threads; my @Threads; for my $Serv (<DATA>) { chomp $Serv; print "Created thread for $Serv\n"; push @Threads, threads->new(sub {runMain($Serv)}); } $_->join() for @Threads; print "Work complete\n"; sub runMain { my ($server) = @_; print "Starting runMain('$server')\n"; if ($server =~ /(\w.+\w\d+.+net),(\w+)/) { my $Server = $1; my $Type = $2; print "Connecting to $Server\n"; } print "Done for $server\n"; } __DATA__ server1.net,value server2.net,value server3.net,value server4.net,value

it prints:

Created thread for server1.net,value Created thread for server2.net,value Starting runMain('server1.net,value') Connecting to server1.net Done for server1.net,value Created thread for server3.net,value Starting runMain('server2.net,value') Connecting to server2.net Done for server2.net,value Created thread for server4.net,value Starting runMain('server3.net,value') Connecting to server3.net Done for server3.net,value Starting runMain('server4.net,value') Connecting to server4.net Done for server4.net,value Work complete

How is your code different?

Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond