in reply to Re^2: When doesn't the flip-flop operator work in all scalar contexts?
in thread Why doesn't the flip-flop operator work in all scalar contexts?
You just demonstrated the difference between a 'constant value' and a 'constant expression'.
UPDATE: Arrrgh, again I fell into the trap of not reading thoroughly. Please ignore.
UPUPDATE: After testing more thoroughly, it seems that when something like $x is used instead of 1, something happens that is not consistent with the docs:
for(1,2,3,4,5) { $.= $_; next if 1..1; print "$_\n"; } #### prints as expected 2 3 4 5 my $x=1; for(1,2,3,4,5) { $.= $_; next if $x..$x; # never returns true! print "$_\n"; } #### prints nothing. Why??? It doesn't test against $. and it doesn't +just test the value $x my $x = 1; my $y = 0; for(1,2,3,4,5) { $.= $_; next if $x..$y; # never returns true! print "$_ "; } #### prints nothing as well. If the flip and the flop happened at the +same round it would have printed something
Tried to run it with -Dx but that showed too much information. Wasn't there a debugging flag that shows just the compiled byte code?
UPUPUPDATE: corrected a copying mistake and explained the wrong output some more
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^4: When doesn't the flip-flop operator work in all scalar contexts?
by ikegami (Patriarch) on Oct 02, 2008 at 19:55 UTC | |
by jethro (Monsignor) on Oct 02, 2008 at 20:07 UTC | |
by ikegami (Patriarch) on Oct 02, 2008 at 20:56 UTC | |
by jethro (Monsignor) on Oct 02, 2008 at 21:12 UTC |