Pre-defined global variables
$!
: The Exception object set byKernel#raise
.$@
: The same as$!.backtrace
.-
$~
: The information about the last match in the current scope (thread-local and frame-local). $&
: The string matched by the last successful match.$`
: The string to the left of the last successful match.$'
: The string to the right of the last successful match.$+
: The highest group matched by the last successful match.$1
: The Nth group of the last successful match. May be > 1.$=
: This variable is no longer effective. Deprecated.$/
: The input record separator, newline by default. Aliased to$-
0.-
$\
: The output record separator forKernel#print
andIO#write
. Default isnil
. -
$,
: The output field separator forKernel#print
andArray#join
. Non-nil $, will be deprecated. -
$;
: The default separator forString#split
. Non-nil $; will be deprecated. Aliased to$-
F. $.
: The current input line number of the last file that was read.$<
: The same as ARGF.-
$>
: The default output stream forKernel#print
andKernel#printf
.$stdout
by default. $_
: The last input line of string by gets or readline.$0
: Contains the name of the script being executed. May be assignable.$*
: The same as ARGV.$$
: The process number of the Ruby running this script. Same as Process.pid.$?
: The status of the last executed child process (thread-local).-
$LOAD_PATH
: Load path for searching Ruby scripts and extension libraries used by Kernel#load and Kernel#require. Aliased to$:
and $-I. Has a singleton method$LOAD_PATH.resolve_feature_path(feature)
that returns [:rb
or:so
, path], which resolves the feature to the path the original Kernel#require method would load. $LOADED_FEATURES
: The array contains the module names loaded by require. Aliased to$"
.-
$DEBUG
: The debug flag, which is set by the-d
switch. Enabling debug output prints each exception raised to$stderr
(but not its backtrace). Setting this to a true value enables debug output as if-d
were given on the command line. Setting this to a false value disables debug output. Aliased to$-
d. $FILENAME
: Current input filename from ARGF. Same as ARGF.filename.$stderr
: The current standard error output.$stdin
: The current standard input.$stdout
: The current standard output.-
$VERBOSE
: The verbose flag, which is set by the-w
or-v
switch. Setting this to a true value enables warnings as if-w
or-v
were given on the command line. Setting this tonil
disables warnings, including from Kernel#warn. Aliased to$-
v and $-w. $-a
: True if option-a
is set. Read-only variable.$-i
: In in-place-edit mode, this variable holds the extension, otherwisenil
.$-l
: True if option-l
is set. Read-only variable.$-p
: True if option-p
is set. Read-only variable.
Pre-defined global constants
TRUE
: The typical true value. Deprecated.FALSE
: Thefalse
itself. Deprecated.NIL
: Thenil
itself. Deprecated.STDIN
: The standard input. The default value for$stdin
.STDOUT
: The standard output. The default value for$stdout
.STDERR
: The standard error output. The default value for $stderr.ENV
: The hash contains current environment variables.-
ARGF
: The virtual concatenation of the files given on command line (or from$stdin
if no files were given). ARGV
: An Array of command line arguments given for the script.DATA
: The file object of the script, pointing just after__END__
.TOPLEVEL_BINDING
: The Binding of the top level scope.RUBY_VERSION
: The Ruby language version.RUBY_RELEASE_DATE
: The release date string.RUBY_PLATFORM
: The platform identifier.-
RUBY_PATCHLEVEL
: The patchlevel for this Ruby. If this is a development build of Ruby the patchlevel will be -1. RUBY_REVISION
: The GIT commit hash for this Ruby.RUBY_COPYRIGHT
: The copyright string for Ruby.RUBY_ENGINE
: The name of the Ruby implementation.RUBY_ENGINE_VERSION
: The version of the Ruby implementation.RUBY_DESCRIPTION
: The same asruby --version
, a String describing various aspects of the Ruby implementation.
English
English
standard library provides longer, more readable names for predefined global variables.
Without ‘English’:
$\ = ' -- '
"waterbuffalo" =~ /buff/
print $', $$, "\n"
With English:
require "English"
$OUTPUT_FIELD_SEPARATOR = ' -- '
"waterbuffalo" =~ /buff/
print $POSTMATCH, $PID, "\n"
Below is a full list of descriptive aliases and their associated global variable:
$ERROR_INFO
:$!
$ERROR_POSITION
:$@
$FS
:$;
$FIELD_SEPARATOR
:$;
$OFS
:$,
$OUTPUT_FIELD_SEPARATOR
:$,
$RS
:$/
$INPUT_RECORD_SEPARATOR
:$/
$ORS
:$\
$OUTPUT_RECORD_SEPARATOR
:$\
$INPUT_LINE_NUMBER
:$.
$NR
:$.
$LAST_READ_LINE
:$_
$DEFAULT_OUTPUT
:$>
$DEFAULT_INPUT
:$<
$PID
:$$
$PROCESS_ID
:$$
$CHILD_STATUS
:$?
$LAST_MATCH_INFO
:$~
$IGNORECASE
:$=
$ARGV
:$*
$MATCH
:$&
$PREMATCH
:$`
$POSTMATCH
:$'
$LAST_PAREN_MATCH
:$+