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"; }

Replies are listed 'Best First'.
Re^2: Print Keys - values of two hashes in a tabulated fromat
by sesemin (Beadle) on May 25, 2010 at 05:55 UTC
    Thanks, I fixed it according to your recommendation. Then I saw the corrected code.