Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

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;

Comment on Re^5: Strange Regex Behavior
Select or Download Code

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2015-07-31 04:45 GMT
Find Nodes?
    Voting Booth?

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

    Results (274 votes), past polls