in reply to Perl style question: loops with postcondition

Depends on the purpose of the code.

I think the first is the cleanest way for simple loops of this sort, and I'm reticent to use infinite loops for anything other than long running processes. Setting up a deliberately short-circuited infinite loop for this kind of purpose can work against intelligibility IMO. Labels I use semi-frequently but only in nested loops and switches.

Here's some fun code though:

use Experimental::Exception; do { ..... } while ( try { $thingy->doSomething(); } catch SomeException => sub { return undef; }; )
Update: slight code change to better reflect the nature of the question.