Perl6 的迴圈語法有很大的改變,Perl5 的 for 變成 Perl6 的 loop,Perl5 的 foreach 變成 Perl6 的 for,用法如下:
loop: 無窮迴圈
loop {
say “這是無窮迴圈";
last; # 用 last 可終止 loop 迴圈
}
loop:替換 Perl5 的 for
my $sum = 0;
loop (my $i = 1; $i < 100; $i++) {
$sum += $i;
}
say $sum; # 4950
Perl6 的 for:
my @array = ; for @array -> $var { say $var; } # => 結果如下: # a # b # c
使用預設變數 $_ 也可以:
my @array = ; for @array { say $_; } # => 結果如下: # a # b # c
用 .say 或 $_.say 也行:
my @array = ; for @array { .say; $_.say; # 此作法同上一列 } # => 結果如下: # a # a # b # b # c # c
至於迴圈控制,可用 next、redo、last:
next 跳過此次迴圈,例: next if $_ == 20;
redo 把此次迴圈再做一次,例:redo if $_ == 10;
last 結束迴圈,和 C 的 break 同樣功能,例: last if $_ == 50
結論:Perl6 真的比 Perl5 有彈性多了,更接近自然語言了。 🙂
