in reply to while loop question
Please consider putting the loop in a sub, thus:
sub foo() {for(1..10) {return 0 if ...; } 1 } if (foo()) {...} [download]
and giving the sub a meaningful name