From: akr@... Date: 2016-05-17T08:52:12+00:00 Subject: [ruby-core:75554] [Ruby trunk Feature#8110] Regex methods not changing global variables Issue #8110 has been updated by Akira Tanaka. How about Regexp#match? to return bool without MatchData? ---------------------------------------- Feature #8110: Regex methods not changing global variables https://bugs.ruby-lang.org/issues/8110#change-58688 * Author: Ilya Vorontsov * Status: Assigned * Priority: Normal * Assignee: Yukihiro Matsumoto ---------------------------------------- It is useful to have methods allowing pattern matching without setting global variables. It can be very hard to understand where the problem is when you for example insert a string like `puts pat === my_str` and your program fails in a place which is far-far away from inserted place. This can happen due to replacing global variables of previous pattern match. I caught to this when placed pattern-match inside case-statement and shadowed global vars which were initially filled by match in when-statement. For now one can extract pattern matching into another method thus defining method-scope for that variables. But sometimes it looks like an overkill. May be simple method like #match_globalsafe can prevent that kind of errors. At least when a programmer see such a method in a list of methods, he's warned that usual match can cause such problems. -- https://bugs.ruby-lang.org/ Unsubscribe: