$!
$@
$&
$`
$'
$+
$1, $2..
$~
$=
$/
$\
$,
$;
$.
$<
$>
$_
$0
$*
$$
$?
$:
$"
$DEBUG
$FILENAME
$LOAD_PATH
$stdin
$stdout
$stderr
$VERBOSE
option variables
$!
The exception information message.
raise
sets this variable.
$@
The backtrace of the last exception, which is the array of the string that indicates the point where methods invoked from. The elements in the format like:
or"filename:line"
"filename:line:in `methodname'"
(Mnemonic: where exception occurred at.)
$&
The string matched by the last successful pattern match in
this scope, or nil
if the last pattern match failed.
(Mnemonic: like & in some editors.)
This variable is read-only.
$`
The string preceding whatever was matched by the last successful
pattern match in the current scope, or nil
if the last
pattern match failed. (Mnemonic: ` often precedes a quoted string.)
This variable is read-only.
$'
The string following whatever was matched by the last successful
pattern match in the current scope, or nil
if the last
pattern match failed.
(Mnemonic: ' often follows a quoted string.)
$+
The last bracket matched by the last successful search pattern, or
nil
if the last pattern match failed. This is useful if
you don't know which of a set of alternative patterns matched.
(Mnemonic: be positive and forward looking.)
$1, $2...
Contains the subpattern from the corresponding set of parentheses
in the last successful pattern matched, not counting patterns matched
in nested blocks that have been exited already, or nil
if
the last pattern match failed. (Mnemonic: like \digit.) These
variables are all read-only.
$~
The information about the last match in the current scope. Setting
this variables affects the match variables like $&
,
$+
, $1
, $2
.. etc.
The nth subexpression can be retrieved by $~[nth]
.
(Mnemonic: ~ is for match.)
This variable is locally scoped.
$=
The flag for case insensitive, nil
by default.
(Mnemonic: = is for comparison.)
$/
The input record separator, newline by default. Works like
awk's RS variable. If it is set to nil
,
whole file will be read at once. (Mnemonic: / is used to delimit line
boundaries when quoting poetry.)
$\
The output record separator for the
print
and
IO#write
.
The default is nil
. (Mnemonic: It's just like
/, but it's what you get "back" from Ruby.)
$,
The output field separator for the
print
.
Also, it is the default separator for
Array#join
.
(Mnemonic: what is printed when there is a , in your
print statement.)
$;
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 by command line
arguments, or stdin (in case no argument file supplied).
$<.file
returns the current filename.
(Mnemonic: $< is a shell input source.)
$>
The default output for print
,
printf
.
$stdout
by default.
(Mnemonic: $> is for shell output.)
$_
The last input line of string by gets
or readline
.
It is set to nil
if gets
/readline
meet EOF
.
This variable is locally scoped. (Mnemonic: partly same as Perl.)
$0
Contains the name of the file containing the Ruby script being
executed. On some operating systems assigning to $0
modifies the argument area that the ps(1) program sees.
This is more useful as a way of indicating the current program state
than it is for hiding the program you're running. (Mnemonic: same as
sh and ksh.)
$*
Command line arguments given for the script. The options for Ruby interpreter are already removed. (Mnemonic: same as sh and ksh.)
$$
The process number of the Ruby running this script. (Mnemonic: same as shells.)
$?
The status of the last executed child process.
$:
The array contains the list of places to look for Ruby scripts and
binary modules by load
or require
. It
initially consists of the arguments to any
-I command line
switches, followed by the default Ruby library, probabl
"/usr/local/lib/ruby", followed by ".", to represent the current
directory. (Mnemonic: colon is the separators for PATH environment
variable.)
$"
The array contains the module names loaded by require
. Used for prevent
require
from load
modules twice. (Mnemonic: prevent files to be doubly quoted(loaded).)
$DEBUG
The status of the -d switch.
$FILENAME
Same as $<.filename
.
$LOAD_PATH
The alias to the $:
.
$stdin
The current standard input.
$stdout
The current standard output.
$stderr
The current standard error output.
$VERBOSE
The verbose flag, which is set by the -v switch to the Ruby interpreter.
The variables which names are in the form of $-?
, where ?
is the option character, are called option variables and contains the
information about interpreter command line options.
$-0
The alias to the $/
.
$-a
True if option -a
is set. Read-only variable.
$-d
The alias to the $DEBUG
.
$-F
The alias to the $;
.
$-i
In in-place-edit mode, this variable holds the extention, otherwise
nil
. Can be assigned to enable (or disable)
in-place-edit mode.
$-I
The alias to the $:
.
$-l
True if option -l
is set. Read-only variable.
$-p
True if option -p
is set. Read-only variable.
$-v
The alias to the $VERBOSE
.
TRUE
The typcal true value. All non-false values (everything except
nil
and false
) is true in Ruby.
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-like object contains current
environment variables. Setting a value in ENV
changes
the environment for child processes.
ARGF
The alias to the $<
.
ARGV
The alias to the $*
.
DATA
The file object of the script, pointing just after the
__END__
. Not defined unless the script is not read from
the file.
VERSION
The Ruby version string.
RUBY_RELEASE_DATE
The relase date string.
RUBY_PLATFORM
The platform identifier.