From: akr@... Date: 2018-01-24T08:22:32+00:00 Subject: [ruby-dev:50425] [Ruby trunk Bug#14240] warn four special variables: $; $, $/ $\ Issue #14240 has been updated by akr (Akira Tanaka). We discussed this issue at today's developper meeting. We (including matz) agree produce warnings for 5 variables ($; $, $/ $\ $.) when it is written in ruby code except -e argument. The warning is produced at compile time. So the warning is produced once for each occurrence (even if it occurs in a loop). Note that $= already produces a warning since ruby 1.9. ---------------------------------------- Bug #14240: warn four special variables: $; $, $/ $\ https://bugs.ruby-lang.org/issues/14240#change-69747 * Author: akr (Akira Tanaka) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- I think the four special variables for separators should be deprecated. ``` $/ input record separator (default argument for "gets") $\ output record separator ("print" prints it at last) $, default separator for Array#join and print $; default separator for String#split ``` I feel many program doesn't work if they are set to non-default value. Since they are global, not thread local, we can not change these variables safely in a multi threaded program. So, I think we should warn them (and delete them in future). -- https://bugs.ruby-lang.org/