in reply to break/continue statements

you might also want to have a look at redo and continue.
this "code" shows where next, redo and last jump, if continue is present:
while (EXPR) { REDO: #body of while block } continue { NEXT: #body of next block } LAST:
without continue it looks slightly different:
NEXT: while (EXPR) { REDO: # body of while block } LAST:

perls next, redo and last can also be used to get out of a deeper level of iteration:

# nb this is stupid code that shortens lines (a char at a time) # and prints the result, until it finds a z at the first pos. LINE: foreach(<>) { while(s/^.//) { print; last LINE if /^z/; #this also breaks the foreach loop. -- it j +umps to the print "done"; statement } } print "done";