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/