Ruby's predefined (built-in) variables affect the behavior of the entire program, so their use in libraries isn't recommended.
The values in most predefined variables can be accessed by alternative means.
- The last exception object raised. The exception object can also be accessed using => in rescue clause.
- The stack backtrace for the last exception raised. The stack backtrace information can retrieved by Exception#backtrace method of the last exception.
- The input record separator (newline by default). gets, readline, etc., take their input record separator as optional argument.
- The output record separator (nil by default).
- The output separator between the arguments to print and Array#join (nil by default). You can specify separator explicitly to Array#join.
- The default separator for split (nil by default). You can specify separator explicitly for String#split.
- The number of the last line read from the current input file. Equivalent to ARGF.lineno.
- Synonym for ARGF.
- Synonym for $defout.
- The name of the current Ruby program being executed.
- The process.pid of the current Ruby program being executed.
- The exit status of the last process terminated.
- Synonym for $LOAD_PATH.
- True if the -d or --debug command-line option is specified.
- The destination output for print and printf ($stdout by default).
- The variable that receives the output from split when -a is specified. This variable is set if the -a command-line option is specified along with the -p or -n option.
- The name of the file currently being read from ARGF. Equivalent to ARGF.filename.
- An array holding the directories to be searched when loading files with the load and require methods.
- The security level.
0 No checks are performed on externally supplied (tainted) data. (default) 1 Potentially dangerous operations using tainted data are forbidden. 2 Potentially dangerous operations on processes and files are forbidden. 3 All newly created objects are considered tainted. 4 Modification of global data is forbidden.
- Standard input (STDIN by default).
- Standard output (STDOUT by default).
- Standard error (STDERR by default).
- True if the -v, -w, or --verbose command-line option is specified.
- The value of interpreter option -x (x=0, a, d, F, i, K, l, p, v).
The following are local variables:
- The last string read by gets or readline in the current scope.
- MatchData relating to the last match. Regex#match method returns the last match information.
The following variables hold values that change in accordance with the current value of $~ and can't receive assignment:
$ n ($1, $2, $3...)
- The string matched in the nth group of the last pattern match. Equivalent to m[n], where m is a MatchData object.
- The string matched in the last pattern match. Equivalent to m, where m is a MatchData object.
- The string preceding the match in the last pattern match. Equivalent to m.pre_match, where m is a MatchData object.
- The string following the match in the last pattern match. Equivalent to m.post_match, where m is a MatchData object.
- The string corresponding to the last successfully matched group in the last pattern match.