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#printandIO#write. Default isnil. -
$,: The output field separator forKernel#printandArray#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#printandKernel#printf.$stdoutby 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 [:rbor: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$-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-wor-vswitch. Setting this to a true value enables warnings as if-wor-vwere given on the command line. Setting this tonildisables 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, otherwisenil.$-l: True if option-lis set. Read-only variable.$-p: True if option-pis set. Read-only variable.
Pre-defined global constants
TRUE: The typical true value. Deprecated.FALSE: Thefalseitself. Deprecated.NIL: Thenilitself. 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$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__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:$+