From: tdrive@...0de.ru Date: 2019-12-23T13:31:29+00:00 Subject: [ruby-core:96429] [Ruby master Bug#16448] regex global variables are working differently depend on scope Issue #16448 has been reported by tdrive (������������������ sdfsdfdsfs). ---------------------------------------- Bug #16448: regex global variables are working differently depend on scope https://bugs.ruby-lang.org/issues/16448 * Author: tdrive (������������������ sdfsdfdsfs) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- Hi, everyone. I am trying to write a code similar on this ``` ruby #!/usr/bin/env ruby def check(f1) f2 = ->(match) { p match; p $~ } data = "hello test test test" data.gsub(/test/, &f1) data.gsub(/test/, &f2) end check(->(match) { p match; p $~ }) ``` output: ``` "test" nil "test" nil "test" nil "test" # "test" # "test" # ``` ruby versions: `ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]` `ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin18]` Why the global variable (`$~`) in f1 and f2 are working differently? It's a bug or my mistake? -- https://bugs.ruby-lang.org/ Unsubscribe: