[Templates] Vmethods to add to 2.15
Josh Rosenbaum
josh@infogears.com
Wed, 01 Feb 2006 21:39:14 -0700
Sergey Martynoff wrote:
> But what about support for backslash-escaped '$' sign in replace
> string? It seems to be achieved quite easily, changind the line
> where actual replace takes place:
>
>> $matched =~ s/\$$i/$backref/g;
>
> with this:
>
> $matched =~ s/(?<!\\)\$$i(?!\d)/$backref/g;
>
> This also solves probles with "unused" backreferences, when you
> use something like replace("(this)","that$10") ending up with
> "that0" instead of desired "that".
I saw this in Paul's code as well. I think it's a pretty good idea,
but there is one thing to point out. It gives the user the impression
that escaping is valid in replacement.
For example if the string is '\\$3' what then? Do we escape the
backslash. This could be a slippery slope, but for now I'm fine with
saying '\$' and '\\$' are both invalid for backrefs for now.
Given that '$' is used quite a bit for money, I think it's probably a
good thing to allow escaping.
-- Josh