## 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.

$=

  This variable is no longer effective. Deprecated.

$/

  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.