use strict; use threads; use Data::Dumper; use threads::shared; #number of service threads to create my $threads = 20; my %dataEntity = ('TEST' => "usr:passwd", 'TEST' => "usr:passwd" ); # create a pool of three service threads foreach (1.. $threads) { threads->create(\&getData); } ## foreach my $dataServer (keys %dataEntity){ ##not sure how will i use thread here } sub getData { my $self = threads->self; my $thread_line; ##how }