in reply to do while loop isn't a really loop
next, last and redo can only be used to leave or restart a loop block. You can't use them in blockless loops like EXPR while EXPR; and EXPR for EXPR;. Remember, do is just another function.
next, last and redo can't be used to leave or restart a blockless while loop (EXPR while EXPR;). Remember, do is just another function.
Update: My initial explanation was incorrect. They work with blockless foreach and counting loops (EXPR for EXPR;).
>perl -wle"print('x'),last while 1; print('y');" x Can't "last" outside a loop block at -e line 1. >perl -wle"print('x'),last for qw(a b c); print('y');" x y
>perl -wle"do { print('x'); last } while 1; print('y');" x Can't "last" outside a loop block at -e line 1. >perl -wle"do { print('x'); last } for qw(a b c); print('y');" x y
That's rather inconsistent.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: do while loop isn't a really loop?
by appleii (Novice) on Nov 12, 2009 at 03:44 UTC | |
by ikegami (Patriarch) on Nov 12, 2009 at 04:49 UTC |