use Win32::GUI; use threads; use threads::shared; my @SHARED; share(@SHARED); (...) &GET(@otherdata); #example (...) #1th subroutine sub GET { @data = @_; (...) sub workder { $data_2 = shift; (...) (...) for(...){ push(@SHARED, $_); } (...) } my $pool2 = Thread::Pool::Simple->new( min => 3, max => 20, do => [\&workder] ); foreach $getdatas (@data) { (...) } $pool2->join(); (...) &GET_2(); } #2th subroutine sub GET_2 { print $_,"\n" for @SHARED; #@SHARED not printing to screen }