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

Re^2: grep flip flop (range operator)

by frozenwithjoy (Priest)
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

Replies are listed 'Best First'.
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. :)


      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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://993387]
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 2016-10-28 14:33 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (384 votes). Check out past polls.