Pre-defined variables
- $!
- 
The exception information message set by 'raise'. 
- $@
- 
Array of backtrace of the last exception thrown. 
- $&
- 
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. 
- $~
- 
The information about the last match in the current scope. 
- $=
- 
The flag for case insensitive, nil by default. 
- $/
- 
The input record separator, newline by default. 
- $\
- 
The output record separator for the print and IO#write. Default is nil. 
- $,
- 
The output field separator for the print and Array#join. 
- $;
- 
The default separator for String#split. 
- $.
- 
The current input line number of the last file that was read. 
- $<
- 
The virtual concatenation file of the files given on command line (or from $stdin if no files were given). 
- $>
- 
The default output for print, 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. 
- $*
- 
Command line arguments given for the script sans args. 
- $$
- 
The process number of the Ruby running this script. 
- $?
- 
The status of the last executed child process. This value is thread-local. 
- $:
- 
Load path for scripts and binary modules by load or require. 
- $“
- 
The array contains the module names loaded by require. 
- $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. 
- $LOADED_FEATURES
- 
The alias to the $“. 
- $FILENAME
- 
Current input file from $<. Same as $<.filename. 
- $LOAD_PATH
- 
The alias to the $:. 
- $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 to nil disables warnings, including from Kernel#warn. 
- $-0
- 
The alias to $/. 
- $-a
- 
True if option -a is set. Read-only variable. 
- $-d
- 
The alias of $DEBUG. See $DEBUG above for further discussion. 
- $-F
- 
The alias to $;. 
- $-i
- 
In in-place-edit mode, this variable holds the extension, otherwise nil. 
- $-I
- 
The alias to $:. 
- $-l
- 
True if option -l is set. Read-only variable. 
- $-p
- 
True if option -p is set. Read-only variable. 
- $-v
- 
An alias of $VERBOSE. See $VERBOSE above for further discussion. 
- $-w
- 
An alias of $VERBOSE. See $VERBOSE above for further discussion. 
Pre-defined global constants
- TRUE
- 
The typical true value. 
- FALSE
- 
The false itself. 
- NIL
- 
The nil itself. 
- 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 alias to the $<. 
- ARGV
- 
The alias to the $*. 
- DATA
- 
The file object of the script, pointing just after __END__. 
- RUBY_VERSION
- 
The ruby version string (VERSION was deprecated). 
- RUBY_RELEASE_DATE
- 
The release date string. 
- RUBY_PLATFORM
- 
The platform identifier.