Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re^2: Bug or feature? s/// and the g option

by Belgarion (Chaplain)
on Oct 14, 2007 at 16:17 UTC ( #644764=note: print w/replies, xml ) Need Help??

in reply to Re: Bug or feature? s/// and the g option
in thread Bug or feature? s/// and the g option

Interesting. So a failed match will clear the $1 variable. I'm still a little stumped by Marco's original example:
$test = <<'END'; XXWY XXWZ END $count = $test =~ s#(XXW?Y)##gi; print "REMOVED: <<$1>>\nCOUNT: $count\n";
That fails. But remove the "i" in the substitution and $1 is defined. Why would case-insensitive make any difference?

Replies are listed 'Best First'.
Re^3: Bug or feature? s/// and the g option
by ysth (Canon) on Oct 14, 2007 at 19:46 UTC
    AIUI, without the i, before the regex engine proper is entered, there's an optimization that makes it search for an XX followed later by a Y. That optimization rejects a match, and when that happens, it bypasses the bug that's setting $1 to undef. Seems to be fixed for 5.10.0.
      Ah, thanks for the explanation ysth!

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (2)
As of 2023-03-23 18:31 GMT
Find Nodes?
    Voting Booth?
    Which type of climate do you prefer to live in?

    Results (60 votes). Check out past polls.