我有一个哈希,其中包含以下格式的密钥:A23
,A03
,A200
等。
据我了解,散列中的键不完全是顺序的。如果我通过首先添加A23
,A03
和A200
来构建哈希,那么当我迭代哈希时,我无法确定它们是否会按顺序排列 - 是否正确?< / p>
我如何能够从哈希中的一个键循环到另一个键,以“添加”顺序访问键。如果没有带有哈希的“添加”顺序,那么我可以按字母顺序对键进行排序。
答案 0 :(得分:1)
Perl没有跟踪哈希的添加顺序,因此您必须单独跟踪,或者只是按字母顺序回溯。 for my $key (sort keys %hash) {...}
是您正在寻找的要点。
答案 1 :(得分:-2)
是,不维护密钥广告订单。有关基于模块的解决方案,请参阅http://search.cpan.org/~chorny/Tie-IxHash-1.23/lib/Tie/IxHash.pm
或者您可以在密钥中构建索引并对检索进行排序:
%hash = (
'01:A23' => 1,
'02:A03' => 2,
'03:A200' => 3
);
foreach $one_key (sort keys %hash ) {
print("KEY : $one_key VALUE :$hash{$one_key}\n");
}
输出是:
KEY : 01:A23 VALUE :1
KEY : 02:A03 VALUE :2
KEY : 03:A200 VALUE :3