$!
$@
$&
$`
$'
$+
$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. (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. (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. (Mnemonic: ' often follows a quoted string.)
$+
The last bracket matched by the last search pattern. 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 pattern matched, not counting patterns matched in nested blocks that have been exited already. (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.