in reply to Printing out multiple hashes at one time
If you'd fix some of the messages that strict and warnings give you, it might simplify things. But as far as your question: Yes you can scan through the keys and print them like this:
for my $penta (keys %totalProbability) { print "$totalProbability{$penta}, $totalCounts{$penta}, ...\n"; }
However, the reason I replied is to mention this: You'd do yourself a favor if you build the statistics data you need as you read it. Something like:
my %stats; while (<FREQ>) { chomp; my ($pent, $pentExpected, $pentObserved, $pentTotal) = split("\t", +$_); next if !defined $pentTotal; # skip malformed lines and end line my $h = { pent=>$pent, count=>$pentObserved, prob=>$pentExpected, pentTotal=>$pentTotal }; push @data,$h; if (exists $stats{$pent}) { $stats{$pent} = { probTotal => $$h{prob}, countTotal => $$h{count}, pentTotal => $$h{pentTotal}, }; } else { $stats{$pent}{probTotal} += $$h{prob}; $stats{$pent}{countTotal} += $$h{count}; $stats{$pent}{pentTotal} += $$h{pentTotal}; } }
When your only tool is a hammer, all problems look like your thumb.
|
|---|