我想知道 Perl 中的 foreach 语句是否以一致的顺序迭代数组中的项目?也就是说,如果我在同一个数组或列表上多次使用 foreach 会得到不同的结果吗?
最佳答案
是的,foreach
中的项目语句按顺序迭代。
您的问题可能源于对哈希元素的迭代混淆:
my %hash = ('a' => 1, 'b' => 2, 'c' => 3);
foreach my $key (keys %hash) { print $key } ; # output is "cab"
但看似随机的顺序是数据如何存储在 Perl 哈希表中的产物(Perl 哈希表中的数据没有排序)。它是
keys
“改变”哈希表顺序的语句,而不是 foreach
.
关于perl - foreach 语句是按顺序迭代还是可能是随机顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747824/