%hash1 = {1=>{air->'5',water->'6'}, 2=>{orange->'2',air->'4',soup->'10'} }; %hash2 = {$filename} = \%hash1; #### for $a (sort keys %mstrToken) { $df = 1; foreach $doc (@docNames) { %tempHash = %{$hash2 {$doc}}; if(exists $tempHash{$a}) { $tkfreq = $tempHash{$a}; $mh{$a}->{'docf'}=$df++; $mh{$a}->{$doc} =$tkfreq; } } #end of file processing for loop }