http://qs321.pair.com?node_id=841478


in reply to Print Keys - values of two hashes in a tabulated fromat

Unless I am misunderstanding the problem, I don't think you need the inner loop at all. You only need to iterate over the list of keys once.

If that doesn't produce the desired result, please clarify the problem.

Update: Here is a modified version of your code (which may be more clear than my reply above).

use strict; use warnings; my %hash_1 = ( 0.2 => '12', 0.4 => '13', 0.6 => '14', ); my %hash_2 = ( 0.2 => '19', 0.4 => '18', 0.6 => '20', ); foreach my $key ( sort { $a <=> $b } keys %hash_1 ) { my $diff_obs_perm = $hash_1{$key}-$hash_2{$key}; my $FDR = $hash_2{$key} / $hash_1{$key}; my $currentdeltaprint = join ("\t", $key, $hash_1{$key}, $hash_2{$key}, $diff_obs_perm, $FDR ); print "$currentdeltaprint\n"; }