use threads; use threads::shared; my %hash:shared =1; my @array=("c:\\Myscripts","c:\\Temp","c:\\Dropbox"); foreach(@array){ push @threads, threads->create(\&execute_ls, $_); } foreach (@threads) { $_->join(); } while(($key,$val)=each %hash){ print("$key:$val\n"); } sub execute_ls{ my $ip=shift; $hash{$ip}=`ls -1 $ip`; }