continue - optional trailing block in a while or foreach
continue BLOCK
Actually a flow control statement rather than a function. If there is a
continue
BLOCK attached to a
BLOCK (typically in a
while
or
foreach
), it is always executed just before the conditional is about to be
evaluated again, just like the third part of a for
loop in
C. Thus it can be used to increment a loop variable,
even when the loop has been continued via the next statement (which is similar to the
C continue
statement).
last, next, or redo may appear within a continue block. last and redo will behave as if they had been executed within the main block. So will next, but since it will execute a continue block, it may be more entertaining.
while (EXPR) { ### redo always comes here do_something; } continue { ### next always comes here do_something_else; # then back the top to re-check EXPR } ### last always comes here
Omitting the continue section is semantically equivalent to using an empty one, logically enough. In that case, next goes directly back to check the condition at the top of the loop.
If rather than formatting bugs, you encounter substantive content errors in these documents, such as mistakes in the explanations or code, please use the perlbug utility included with the Perl distribution.