in reply to Doing "it" only once

I usually handle it this way:
while ( <FH> ) { last if $_ eq 'foo'; # Where foo can only appear once in the file print; } while ( <FH> ) { print; }
Of course, if print is really something more, extract it to a subroutine.

Replies are listed 'Best First'.
Re^2: Doing "it" only once
by Limbic~Region (Chancellor) on Sep 21, 2005 at 15:31 UTC
    jdporter,
    The first part of your response is identical to cog's. I will refer to my response there. I am pretty sure your last comment still only works in the most trivial of cases. Consider:
    • Restarting most loops requires knowing where the previous left off
    • Having more than 1 "run this once" statements complicates things dramatically - especially if order is unknown
    • The "run this once" condition might not always be skipping to the next iteration in the loop
    I am sure there are more and the point of the medidation isn't to enumerate them. Just assume for a second that the functionality existed and by some magic it didn't cost much - what would you do with it?

    Cheers - L~R

      Understood. But neither your (trivial) example motivating problem, nor your proposed solution, addresses any of those points either. So I don't quite grep why you have any issue with my/coq's answer.

      Why don't you post a real-world problem that has all of your bulleted issues above, and then post a real-world solution for that problem?

        jdporter,
        See my reply to the AM.

        Paragraph added
        What are you calling my proposed solution? I have not provided any solution. I have outlined a functionality that does not exist and asked for people to think about how they would use it if it did.

        I included the original example just so people could get an idea of what I was talking about. I wasn't hoping for people to provide solutions to specific cases but to think about what they would do if they had a built-in general purpose way of identifying code that once executed would disapear. So far, optimizing looping constructs appears to be the only application but I can't believe that's the only one.

        Cheers - L~R