http://www.perlmonks.org?node_id=136037


in reply to do/redo or for(;;): what's Kosher?

I really like it, and am likely to abandon the for(;;) construct permanently in favor of the above idiom. Should I repent?

One of the tradeoffs you'll need to consider when making this decision is whether readability suffers when your loop gets to be more than an eyefull. A non-loop scope is a common idiom, particularly when the intent it to temporarily localize variables. When I read

{ local $/ = undef; ...
I think to myself, "ah, slurp mode," not "I wonder if this is going to be a loop?" I then read on with a mental context set. But if 15 lines down I enounter last or redo, I have a moment of confusion to work through that wouldn't have been there if the scope had started with   while ( 1 ) { or   for ( ; ; ) {