From: "David A. Black" Date: 2003-11-22T21:25:34+09:00 Subject: Re: behaviour change of String#gsub(pattern) {|m| ... } for ruby 1.9/ruby2? 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 dblack@wobblini.net