in reply to while loop question

You seem to be asking for a fairly specific answer to a very general question. The context for the code could make a great deal of difference to what constitutes a good solution.

For example, if the while loop is in a sub and you simply want to bail when an error is encountered you could return or die within the loop. That sends a very clear message that an unusual condition is being handled. You could use eval for a block you can return from to achieve the same effect without using a sub. In some situations that may be a clean concise solution. Consider:

#!/usr/bin/perl use strict; use warnings; my @items = qw(ok fine great bail); eval { while (@items) { return if $items[0] eq 'bail'; print shift(@items), "\n"; } print "No bail items found today\n"; return 1; } or print "Bailed early\n";

Prints:

ok fine great Bailed early
True laziness is hard work