while(1) { ... } # why while? 1 never can get false for(;;) { ... } # just for nothing? do { ... } until $cond; # bad practice as per PBP? { ... redo unless $cond } # (fill in your complaint :-) uh-oh. "unless"!