In Control flow§
See primary documentation in context for repeat/while, repeat/until.
Executes the block at least once and, if the condition allows, repeats that execution. This differs from while
/until
in that the condition is evaluated at the end of the loop, even if it appears at the front.
my $x = -42; repeat { $x++; } while $x < 5; $x.say; # OUTPUT: «5» repeat { $x++; } while $x < 5; $x.say; # OUTPUT: «6» repeat while $x < 10 { $x++; } $x.say; # OUTPUT: «10» repeat while $x < 10 { $x++; } $x.say; # OUTPUT: «11» repeat { $x++; } until $x >= 15; $x.say; # OUTPUT: «15» repeat { $x++; } until $x >= 15; $x.say; # OUTPUT: «16» repeat until $x >= 20 { $x++; } $x.say; # OUTPUT: «20» repeat until $x >= 20 { $x++; } $x.say; # OUTPUT: «21»
All these forms may produce a return value the same way loop
does.