use strict; use warnings; use threads; use Data::Dumper; my $array1 = threads->new(\&funct_array,($par1,$par2,$filename)); my $hash1 = threads->new(\&funct_hash,($par1,$par2,$par3,$filename)); # Then I tried to see the content of the array # with Data Dumper print Dumper $array->join; print Dumper $hash1->join; # But I couldn't see any value of @array1 and # %hash1 that I can use for the later process # Subroutine list sub funct_array { my ($p1,$p2,$fn) = @_; my @array_result; # Run some time consuming process return @array_resutlt; } sub funct_hash{ my ($p1,$p2,$fn) = @_; my %hash_result; # Run some time consuming process return \%hash_resutlt; }