Hi --

On Fri, 21 Nov 2003, Florian Gross wrote:
> Yukihiro Matsumoto wrote:
>
> > Hi,
>
> Moin!
>
> > |String#gsub(pattern) {|m| ... }
> > |
> > |It really would be nice to get match data in 'm', but this would surely
> > |break _a lot_ of scripts. How about String#regsub, #regsub!, #resub,
> > |#resub! ? What do others think?
> >
> > Sounds nice. The only reason for the current behavior is that sub
> > predates MatchData. But we have to define migration path.
>
> I like this, because matz told me I shouldn't be using $1 in the
> gsub-block and there's no way to not do so right now. :)
I've also just noticed this:

irb(main):001:0> "abc".gsub(/((x?)abc)/) {|n,m| p n, m}
"abc"
nil

as opposed to:

irb(main):002:0> /((x?)abc)/.match("abc").captures
=> ["abc", ""]

which makes it hard to do, say, downcasing of a capture in #gsub,
without checking it for nil-ness or, as you say, using $1 and friends.


David

--
David A. Black
[email]dblack@wobblini.net[/email]