in reply to Exiting eval via next: is that so bad?

The canonical way of getting out of an eval block is to raise an exception with 'die'. If you really want to use 'next', you could try to add another level of braces so that it can jump out of a "real" block. For example...
eval {{ next; }}
... doesn't issue a warning (and doesn't do anything useful either). Even in this case I'd probably use 'last' instead since it implies you are finished doing whatever you were doing in the block, but YMMV.

bluto Update: Ok, I'm a slow typer so this is redundant. Think about using 'die' instead though.