in reply to Re: A way to avoid repeated conditional loops
in thread A way to avoid repeated conditional loops

That's an awesome approach! Really like this method. I'll test it and put it on production.

Thanks!

  • Comment on Re^2: A way to avoid repeated conditional loops

Replies are listed 'Best First'.
Re^3: A way to avoid repeated conditional loops
by SuicideJunkie (Vicar) on Aug 24, 2011 at 13:57 UTC

    Are you assuming that 'alpha' is also always the first line in the file?

    Also, the posted flipflop doesn't behave the same as the OP

    A simpler way to just use a flag and short circuit the regex work:

    my $seen = 0; while (<$fh>) { if ( !$seen and m/^alpha$/) { $seen = 'yes indeed'; print "true\n"; }else{ print "false\n"; } }

    Given a test file of:

    foo bar alpha beta gamma delta
    The results I got are:
    Original: false false true false false false Flipflop: Argument "" isn't numeric in numeric gt (>) at test.pl line 21, <$fh> +line 1. false Argument "" isn't numeric in numeric gt (>) at test.pl line 21, <$fh> +line 2. false false true true true Flag: false false true false false false

      hm, if I add no warnings "numeric"; to the flip-flop code, the output seems to be fine. output all lines after "alpha". at least that's how I understood the task.

        The OP code has an else condition on the match for alpha. That should execute for every line of the file except the 'alpha', regardless of before or after.

      No, "alpha" might be anywhere in the middle of the file (but it will appear only once).

      Actually the flip-flop operator may work only after "alpha" matched.

      Many thanks though for the short-circuiting thing :)