Hi, here's something that does not require threads, powered by the Perl Many-Core Engine:
use strict;
use warnings;
use MCE::Flow chunk_size => 1;
mce_flow sub {
chomp;
printf("%s processing %s\n", $$, $_);
if (/(\w.+\w\d+.+net),(\w+)/) {
my $host = $1;
my $type = $2;
printf "%s connecting to %s\n", $$, $host;
}
printf "%s finished %s\n", $$, $_;
}, [(<DATA>)];
__DATA__
server1.net,value
server2.net,value
server3.net,value
server4.net,value
Output:
perl 11124156.pl
597 processing server3.net,value
605 processing server2.net,value
595 processing server1.net,value
600 processing server4.net,value
605 connecting to server2.net
595 connecting to server1.net
600 connecting to server4.net
605 finished server2.net,value
595 finished server1.net,value
600 finished server4.net,value
597 connecting to server3.net
597 finished server3.net,value
Hope this helps!
The way forward always starts with a minimal test.