我有一个哈希表,其键的格式如下:
scaffold_902_159
scaffold_2_1980420
scaffold_2_10
scaffold_10_402
我希望以以下格式打印哈希排序后的内容:
scaffold_2_10
scaffold_2_1980420
scaffold_10_402
scaffold_902_159
首先,我需要按照第一个数字的顺序进行排序,然后再按照最后一个数字进行排序。我不想使用正则表达式搜索“scaffold_”,因为这可能会有所变化。我的意思是,我可以使用其他格式的哈希值,例如“blablabla_NUMBER_NUMBER”或“blablablaNUMBER_NUMBER”。键的最后一部分_NUMBER是唯一固定的部分。
我有以下代码,但只能按照第一个数字的顺序进行排序:
my @keys = sort {
my ($aa) = $a =~ /(\d+)/;
my ($bb) = $b =~ /(\d+)/;
$aa <=> $bb;
} keys %hash;
foreach my $key (@keys) {
print $key;
}
有什么建议吗?