$!
$@
$&
$`
$'
$+
$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 -lis set. Read-only variable.
$-p
True if option -pis 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.