NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Feature (Score:2)
See also
$| only has two values, 0 and 1. I thought this was documented in perlvar but it doesn't seem to be. Perhaps it should be.
Re:Feature (Score:2)
To me that sounds like it will return the moral equivalent of true or false (zero and one in this case) based on what the state of $| is.
Casey West
Re:Feature (Score:2)
Actually, this also occurs with $^W:
# perl -le 'print $^W; $^W--; print $^W';0
1
Re:Feature (Score:2)
0 -> 1 when $|++
1 -> 1 when $|++
1 -> 0 when $|--
0 -> 0 when $|--
I think the range should be documented, but is it going from a value of 0 to 1 when decremented a bug, or is it a documentation issue? (Of course, once you document a bug is a feature, it isn't a bug anymore :)
Re:Feature (Score:2)
I suppose that as it's a boolean value, then the -1 gets mapped to "true" - or 1. Not sure how intuitive that is tho'.
Of course, if you ever needed a flip-flop variable then you could make use of this behaviour :)
Re:Feature (Score:2)
Heathens! Ambiguous wretches! (Score:1)
The one true way is
$| = 1;, even if you're re-enabling buffering.Boolean (Score:2)
That's perl's new built-in boolean type. The pumpkings have been slipping in Perl 6 features when you weren't looking. :)
I think what happens is you decrement 0 to get -1, but $| only stores the truth or falsehood of its value, so it stores and outputs 1.
Neat!
On another note, I like how everyone in this thread is actually using -w for a one liner. :)
J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
Hmmmm (Score:2)