Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.

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

by Belgarion (Chaplain)
on Oct 14, 2007 at 16:17 UTC ( [id://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?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2024-07-21 14:39 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.