in reply to I need a different continue

If you don't need foreach's aliasing effect, you can do something like:

while (1) { last unless (EXPR); # code } continue { # code }