我有一个简单的脚本试图了解 Perl 中的哈希。
#!/usr/bin/perl
my %set = (
-a => 'aaa',
-b => 'bbb',
-c => 'ccc',
-d => 'ddd',
-e => 'eee',
-f => 'fff',
-g => 'ggg'
);
print "Iterate up to ggg...\n";
while ( my ($key, $val) = each %set ) {
print "$key -> $val \n";
last if ($val eq 'ggg');
}
print "\n";
print "Iterate All...\n";
while ( my ($key, $val) = each %set ) {
print "$key -> $val \n";
}
print "\n";
我对输出感到惊讶:-
Iterate upto ggg...
-a -> aaa
-c -> ccc
-g -> ggg
Iterate All...
-f -> fff
-e -> eee
-d -> ddd
-b -> bbb
我知道键是散列的,因此第一个输出可以是“n”个元素,具体取决于内部排序。但是为什么我不能在之后循环数组呢?怎么了 ?
谢谢,