Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: last in a do while loop

by ikegami (Patriarch)
on Nov 03, 2006 at 15:48 UTC ( [id://582109]=note: print w/replies, xml ) Need Help??


in reply to Re: last in a do while loop
in thread last in a do while loop

LOOP: { charlie; last LOOP if bob; david; redo LOOP if alice; }

A more concise syntax:

for (;;) { charlie; last if bob; david; last if !alice; }

It's my understanding that for (;;) { ... } can be replaced simply with loop { ... } in Perl6.

Replies are listed 'Best First'.
Re^3: last in a do while loop
by Jenda (Abbot) on Nov 03, 2006 at 20:50 UTC

      There's one significant advantage (from the reader's point of view) to while (1):

      • The meaning of while (1) is straightforward to deduce by someone who has never seen it, whereas the meaning of for (;;) is not.

      There are minor advantages (from the reader's point of view) to for (;;):

      • for (;;) has no expression to read, while while (1) does. (Note the addition of loop { ... } in Perl 6.)

      • "(;;)" can be read as "ever". "For ever" sounds better than "while one", "while true" or "while ever" (and requires no mental backtracking). "While not done" would be a great reading, but translating "1" to "not done" is a stretch.

      • for (;;) is visually distinctive from naturally ending loops.

      Update: hum... while (!0) could be read as "while not done"...

        Well, we could write while (not 'done') { ... }, but even though it would work and it would read fine, I think it would actually confuse people ;-)

        Update: while ('not done') { ... } of course. Sorry. I guess I should not be here at 1am. Thanks Sidhekin.

        Don't know if/when this will get looked at but I was unaware that a do-while loop didn't operate like a loop so last doesn't "work" with it. My problem is I have a structure similar to this. I'm guessing what I need is a way to keep reading the next line in the file, but at times I had problems assigning $aVar = <AFile>. Would a similar loop construct with $aVar = <Afile> being the final statement in that bare loop work?
        while(<AFile>) { if(found keyword) do{ process keyword and next few lines if(done processing){ last } }while(<AFile>); # do some post processing } # Continue processing after this in the same file

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-04-25 09:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found