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 有彈性多了,更接近自然語言了。 🙂