From: Park Ji-In Date: 2008-01-26T19:41:09+09:00 Subject: [ruby-dev:33403] wrapped String#gsub こんにちは、朴 芝印です。 次のように gsubをラッピンッグして 実行すると、ちょっと意外な結果がでますが、ごれは正しいでしょうか。 勘違いだったらすみません。 $ cat test2.rb class String def wrap_gsub(*a, &b) self.gsub(*a, &b) puts "in wrapper ? #{$&}" end end puts "wrapper" "abc".wrap_gsub(/([abc]+)/n) {|x| p $&} puts "and out of wrapper - #{$&}" puts "=======" puts "original" "abc".gsub(/([abc]+)/n) {|x| p $&} 結果です。1.8/1.9 同じです。 $ ruby test2.rb wrapper nil in wrapper ? abc and out of wrapper - ======= original "abc" $ ruby --version ruby 1.9.0 (2008-01-22 revision 0) [i686-linux] mithrandir@losrorien ~/Development/ruby-1.8.6 $ ruby18 test2.rb wrapper nil in wrapper ? abc and out of wrapper - ======= original "abc" $ ruby18 --version ruby 1.8.6 (2007-12-03 patchlevel 113) [i686-linux]