Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re^5: Strange Regex Behavior

by quester (Vicar)
on Dec 06, 2011 at 09:08 UTC ( #941975=note: print w/replies, xml ) Need Help??

in reply to Re^4: Strange Regex Behavior
in thread Strange Regex Behavior

Ah... yes. That would make it a bug. Sorry.

It doesn't seem to be the ternary operator causing the havoc, or pattern matching though:

$,=", "; my $i; print $i++, $i, $i++, $i, $i++, $i;


0, 3, 1, 3, 2, 3

Using Dump, we can see that the optimizer is assuming that $1 must be constant for the length of time it takes to evaluate the list:

use Data::Dump::Streamer; my $i; print Dump \($i++, $i, $i++, $i, $i++, $i);


$SCALAR1 = \do { my $v = 0 }; $SCALAR2 = \do { my $v = 3 }; $SCALAR3 = \do { my $v = 1 }; $SCALAR4 = $SCALAR2; $SCALAR5 = \do { my $v = 2 }; $SCALAR6 = $SCALAR2;

The autoincrement is also not a necessary ingredient:

use Data::Dump::Streamer; print Dump \("x"=~/(x)/, $1, "y"=~/(y)/, $1, "z"=~/(z)/, $1);


$SCALAR1 = \do { my $v = 'x' }; $SCALAR2 = \do { my $v = 'z' }; $SCALAR3 = \do { my $v = 'y' }; $SCALAR4 = $SCALAR2; $SCALAR5 = \do { my $v = 'z' }; $SCALAR6 = $SCALAR2;

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://941975]
[Corion]: I mean, in a way it would be nicer+easier if they always where that obedient, but it's comforting to see that they are when it matters, at least for now ;)

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (5)
As of 2016-12-08 09:36 GMT
Find Nodes?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:

    Results (138 votes). Check out past polls.