Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^2: grep flip flop (range operator)

by frozenwithjoy (Curate)
on Sep 13, 2012 at 07:12 UTC ( #993387=note: print w/ replies, xml ) Need Help??


in reply to Re: grep flip flop (range operator)
in thread grep flip flop (range operator)

BONUS STUMPER: For all of the ones that don't print, they do print if you replace 1 with 0; however, all elements are printed instead of stopping at Q (shown below). For the one that did print, the change to 0 causes it to not print. Anyone able to explain this?

a b c Q r s


Comment on Re^2: grep flip flop (range operator)
Select or Download Code
Re^3: grep flip flop (range operator)
by davido (Archbishop) on Sep 13, 2012 at 07:23 UTC
    perl -E 'say "Yes!" if $. == 0;'

    $. uninitialized if there's no file open for reading (undef). undef is false. In a numeric comparison, undef is promoted to zero (or conceptually better, zero is demoted to false, and undef is promoted to false). Consequently, 0 .. is true, and the flip flop flips.

    If warnings were enabled you'd get one. :)


    Dave

      Ah, yes.... and the reason it doesn't stop at Q is because it gets flipped right back on after Q. Apparently, my brain only works once per night. Thanks!
Re^3: grep flip flop (range operator)
by grizzley (Chaplain) on Sep 13, 2012 at 08:51 UTC
    Whole list is printed, as after spotting 'Q' flip-flop goes to 'false' state and back to condition $. == 0 which is all the time true, so it sets flip-flop again to true.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (11)
As of 2015-07-01 16:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (9 votes), past polls