0
當進入在下一次從中跳下後子循環,子循環迭代應該從開始:的Perl子循環無法重置迭代INTERAL變量
#!perl
use 5.014;
my %hash = ("a" => 1, "b" => 2 , "c" => 3);
my $pos = 0;
POS:
while ($pos < 4) {
$pos++;
while (my ($key, $value) = each %hash) {
say "key: $key value: $value";
next POS;
}
}
但結果如下:
$ perl bugs-loop.pl
key: c value: 3
key: a value: 1
key: b value: 2
如何得到以下結果:
key: c value: 3
key: c value: 3
key: c value: 3
我會避免使用每一個()的話 - 它太容易混淆時,哈希保持你多遠通過它迭代內部狀態。 – asjo
確切地說,不要使用'each',除非你100%確定你迭代到散列的最後。 –
@VadimPushtaev ...甚至不要使用'each'。 :-) – tobyink