http://qs321.pair.com?node_id=676042


in reply to do {$i++} until vs. $i++ until

This is documented in perlsyn:

The while and until modifiers have the usual "while loop" semantics (conditional evaluated first), except when applied to a do-BLOCK (or to the deprecated do-SUBROUTINE statement), in which case the block executes once before the conditional is evaluated. This is so that you can write loops like:
do { $line = <STDIN>; ... } until $line eq ".\n";