Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: do/redo or for(;;): what's Kosher?

by Juerd (Abbot)
on Jan 03, 2002 at 22:51 UTC ( #136041=note: print w/ replies, xml ) Need Help??


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

You're right about the TIMTOWTDI:
for (;;) { ... }
while (1) { ... }
do { ... } while 1;
do { ... } until 0;
{ ...; redo; }

Everyone chooses their own favorite idiom.
Perhaps the bare-block-with-redo-solution is the "best" one, but it doesn't look clear. Imagine having a 1000 line loop (there's something wrong with the program design if that's the case, but let's forget that) and seeing only { on the top. In that case (imnsho) it's better to use while (1) { ... } or for (;;) { ... }.
(I admit: I made the same mistake.)

By the way, why would you abandon for (;;) { ... }? A C-style for with only ;; can mean only one thing, and that's why i think it's the "best" solution.

2;0 juerd@ouranos:~$ perl -e'undef christmas' Segmentation fault 2;139 juerd@ouranos:~$


Comment on Re: do/redo or for(;;): what's Kosher?
Download Code
Re: Re: do/redo or for(;;): what's Kosher?
by paulbort (Hermit) on Jan 04, 2002 at 23:23 UTC
    I know it's more code, but my favorite method for obvious loops looks like this:
    $forever = 1; while ($forever) { ... }
    ---
    Spring: Forces, Coiled Again!
      That won't be optimized away, but a constant true value (not 0, "0", "" or undef) are.
      This means you can have less code and more efficiency, but still the clarity you like:
      while ('forever'){ ... }


      Which is equivalent to while (1) { ... }, which is optimized to for (;;) { ... }.

      2;0 juerd@ouranos:~$ perl -e'undef christmas' Segmentation fault 2;139 juerd@ouranos:~$

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://136041]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2014-12-25 13:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (160 votes), past polls