【发布时间】:2023-03-14 16:28:01
【问题描述】:
我正在尝试处理文件哈希,并且必须按特定顺序完成工作。大多数人会说列表可以这样排序:
for my $k (sort keys %my_hash)
{
print "$k=>$my_hash{$k}, ";
}
但是,我需要非字母顺序,实际上键以单词开头,然后是 _,然后它们转到 G 到 digits 到 L 到 M,P,R,T or D 中的任何一个(例如 word_G.txt,@ 987654328@,...,word_P.txt)。有没有办法按自定义顺序排序?
【问题讨论】:
-
只需将您的排序条件放在排序关键字后面:
while my $k (sort { $a < $b unless $a eq '_' } keys %my_hash)等 ...