【发布时间】:2014-04-13 13:52:37
【问题描述】:
我刚刚阅读了帖子Sorting alphanumeric hash keys in Perl?。但是我是从Perl开始的,理解的不是很清楚。
所以我有一个像这样的哈希:
%hash = (
"chr1" => 1,
"chr2" => 3,
"chr19" => 14,
"chr22" => 1,
"X" => 2,
)
我正在尝试获得这样的输出:
chr1
chr2
chr19
chr22
但我得到这样的输出:
chr1
chr19
chr2
chr22
我已经编写了这段代码,但是它创建了上面的错误输出:
foreach my $chr (sort {$a cmp $b} keys(%hash)) {
my $total= $hash{$chr};
my $differentpercent= ($differenthash{$chr} / $total)*100;
my $round=(int($differentpercent*1000))/1000;
print "$chr\t$hash{$chr}\t$differenthash{$chr}\t$round\n";
}
打印出来:
chr1 342421 7449 2.175
chr10 227648 5327 2.34
chr11 220415 4468 2.027
chr12 213263 4578 2.146
chr13 172379 3518 2.04
chr14 143534 2883 2.008
chr15 126441 2588 2.046
chr16 138239 3596 2.601
chr17 122137 3232 2.646
chr18 130275 3252 2.496
chr19 99876 2836 2.839
chr2 366815 8123 2.214
我该如何解决这个问题?
【问题讨论】:
标签: perl sorting hash alphanumeric