我想知道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/

10-09 01:14
查看更多