【发布时间】:2015-02-13 11:22:57
【问题描述】:
我这样定义一个哈希数组:
while (my $line = <PILEUP>) {
if ($line =~ /INDEL/ and $line !~ /^#/) {
chop $line;
my @splitline = split(/\t/, $line);
$hash2{$splitline[1]}{len} = length($splitline[4]);
$hash2{$splitline[1]}{type} = "INDEL";
push @{$hash1{$splitline[0]}}, %hash2;
}
}
然后,我想按每个哈希的键对该数组进行排序:
for my $chr (keys %hash1) {
my @sorted = sort { $a->{ } <=> $b->{ } } @{%hash1{$chr}};
}
但是,不知道如何在此处继续。
【问题讨论】:
-
你能举个例子吗?我不清楚您实际上要排序的内容。我认为您可能混淆了您的特殊排序变量
$a和$b,因为在对数组进行排序时,数组元素的值。 -
数组里面有很多哈希。我只想通过键对数组的元素进行排序,这些元素是哈希。
-
如果你的数组中有散列,你如何比较两个不同散列的“相等性”?