$!: The Exception object set by
$@: The same as
$~: 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
$\: The output record separator for
IO#write. Default is
$,: The output field separator for
Array#join. Non-nil $, will be deprecated.
$;: The default separator for
String#split. Non-nil $; will be deprecated. Aliased to
$.: The current input line number of the last file that was read.
$<: The same as ARGF.
$>: The default output stream for
$_: 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 [
: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
-dswitch. Enabling debug output prints each exception raised to
$stderr(but not its backtrace). Setting this to a true value enables debug output as if
-dwere given on the command line. Setting this to a false value disables debug output. Aliased to
$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
-vswitch. Setting this to a true value enables warnings as if
-vwere given on the command line. Setting this to
nildisables warnings, including from Kernel#warn. Aliased to
$-v and $-w.
$-a: True if option
-ais set. Read-only variable.
$-i: In in-place-edit mode, this variable holds the extension, otherwise
$-l: True if option
-lis set. Read-only variable.
$-p: True if option
-pis set. Read-only variable.
TRUE: The typical true value. Deprecated.
STDIN: The standard input. The default value for
STDOUT: The standard output. The default value for
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
$stdinif 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
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 as
ruby --version, a String describing various aspects of the Ruby implementation.
English standard library provides longer, more readable names for predefined global variables.
$\ = ' -- ' "waterbuffalo" =~ /buff/ print $', $$, "\n"
require "English" $OUTPUT_FIELD_SEPARATOR = ' -- ' "waterbuffalo" =~ /buff/ print $POSTMATCH, $PID, "\n"
Below is a full list of descriptive aliases and their associated global variable: