From: Yukihiro Matsumoto <matz@...> Date: 2012-02-14T17:07:22+09:00 Subject: [ruby-core:42601] [ruby-trunk - Feature #5977][Rejected] Remove $, and avoid perlish global variables Issue #5977 has been updated by Yukihiro Matsumoto. Status changed from Open to Rejected As Thomas mentioned, Ruby 2.0 would not introduce serious incompatibility. Reopen in the future (3.0?). matz. ---------------------------------------- Feature #5977: Remove $, and avoid perlish global variables https://bugs.ruby-lang.org/issues/5977 Author: Benoit Daloze Status: Rejected Priority: Normal Assignee: Category: core Target version: 2.0.0 Hello, As I mentioned at RubyConf, I would like the $, global variable to be removed for 2.0. I would like to avoid "perlish" global variables in general, but I think many can't be removed for compatibility, and a few are actually useful shortcuts (mostly to the pattern matching variables). They are nice for golfing and small scripts, but I believe they hurt bigger scripts/code. $, is used as the default separator for Array#join (and Kernel#print), and I think it causes more harm than good: * I believe many ruby codes would fail (different and unexpected output) when setting $, , because it means a simple `ary.join` is not deterministic: you need `ary.join('')` which is long and quite unexpected for a "default" behavior. * The behavior would be much clearer (a simple method with a sensible default) and so the documentation. * It's mostly unused, and except for trivial scripts it will just be complicated to manage as it impacts globally the output. What do you think? -- http://bugs.ruby-lang.org/