When followed by a BLOCK,continue is actually a flow control statement rather than a function. If there is acontinue BLOCK attached to a BLOCK (typically in awhile orforeach), it is always executed just before the conditional is about to be evaluated again, just like the third part of afor loop in C. Thus it can be used to increment a loop variable, even when the loop has been continued via thenext statement (which is similar to the Ccontinue statement).
last,next, orredo may appear within acontinue block;last andredo behave as if they had been executed within the main block. So willnext, but since it will execute acontinue block, it may be more entertaining.
while (EXPR) { ### redo always comes here do_something;} continue { ### next always comes here do_something_else; # then back to the top to re-check EXPR}### last always comes hereOmitting thecontinue section is equivalent to using an empty one, logically enough, sonext goes directly back to check the condition at the top of the loop.
When there is no BLOCK,continue is a function that falls through the currentwhen ordefault block instead of iterating a dynamically enclosingforeach or exiting a lexically enclosinggiven. In Perl 5.14 and earlier, this form ofcontinue was only available when the"switch" feature was enabled. Seefeature and"Switch Statements" in perlsyn for more information.
Perldoc Browser is maintained by Dan Book (DBOOK). Please contact him via theGitHub issue tracker oremail regarding any issues with the site itself, search, or rendering of documentation.
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via thePerl issue tracker, themailing list, orIRC to report any issues with the contents or format of the documentation.