When followed by a BLOCK, continue is actually a flow control statement rather than a function. If there is a continue BLOCK attached to a BLOCK (typically in a
foreach), it is always executed just before the conditional is about to be evaluated again, just like the third part of a
forloop 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 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.
When there is no BLOCK, continue is a function that falls through the current
defaultblock instead of iterating a dynamically enclosing
foreachor exiting a lexically enclosing
given. In Perl 5.14 and earlier, this form of continue was only available when the switch feature was enabled. See feature and Switch Statements in perlsyn for more information.