Pre-defined variables and constants

prev - next - index

# Pre-defined variables

- `$!`
- `$@`
- `$&`
- `$``
- `$'`
- `$+`
- `$1, $2..`
- `$~`
- `$=`
- `$/`
- `$\`
- `$,`
- `$;`
- `$.`
- `$<`
- `$>`
- `$_`
- `$0`
- `$*`
- `$$`
- `$?`
- `$:`
- `$"`
- `$DEBUG`
- `$FILENAME`
- `$LOAD_PATH`
- `$stdin`
- `$stdout`
- `$stderr`
- `$VERBOSE`
- `option variables`
  - `$-0`
  - `$-a`
  - `$-d`
  - `$-F`
  - `$-i`
  - `$-I`
  - `$-l`
  - `$-p`
  - `$-v`

`$!`

  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:

  >     "filename:line"

  or

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

option variables

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

# Pre-defined global constants

- `TRUE`
- `FALSE`
- `NIL`
- `STDIN`
- `STDOUT`
- `STDERR`
- `ENV`
- `ARGF`
- `ARGV`
- `DATA`
- `RUBY_VERSION`
- `RUBY_RELEASE_DATE`
- `RUBY_PLATFORM`

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

prev - next - index

matz@netlab.co.jp