我刚刚阅读了在 Perl 中排序字母数字哈希键的帖子?. 但是我是从 Perl 开始的,我不是很清楚。
所以我有一个这样的哈希:
%hash = (
"chr1" => 1,
"chr2" => 3,
"chr19" => 14,
"chr22" => 1,
"X" => 2,
)
Run Code Online (Sandbox Code Playgroud)
我试图获得这样的输出:
chr1
chr2
chr19
chr22
Run Code Online (Sandbox Code Playgroud)
但我正在获得这样的输出:
chr1
chr19
chr2
chr22
Run Code Online (Sandbox Code Playgroud)
我写了这段代码,但它创建了上面的错误输出:
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";
}
Run Code Online (Sandbox Code Playgroud)
它打印:
chr1 342421 7449 2.175
chr10 227648 5327 2.34
chr11 220415 4468 2.027
chr12 213263 4578 2.146 …Run Code Online (Sandbox Code Playgroud)