我正在处理一个文件哈希值的任务,而且这个任务必须按照特定的顺序完成。大多数人会说可以按以下方式对列表进行排序:
for my $k (sort keys %my_hash)
{
print "$k=>$my_hash{$k}, ";
}
但是,我需要按照非字母顺序排序,实际上键以一个单词开头,然后是下划线_
,然后它们按照G
到数字
到L
到任何一个M、P、R、T或D
的顺序排序(例如word_G.txt
、word_2.txt
、...、word_P.txt
)。有没有办法按照自定义顺序排序?
while my $k (sort { $a < $b unless $a eq '_' } keys %my_hash)
等等... - rubber boots