$!
$@
$&
$`
$'
$+
$1, $2..
$~
$=
$/
$\
$,
$;
$.
$<
$>
$_
$0
$*
$$
$?
$:
$"
$DEBUG
$FILENAME
$LOAD_PATH
$stdin
$stdout
$stderr
$VERBOSE
$KCODE
オプション変数
$!
最も最近の例外に関する情報.
raise
によって
設定されます.
$@
例外が発生した時バックトレースが配列としてが格納されます. 配列の各要素はメソッドの呼び出し位置を示す文字列で形式は
または"filename:line"
です. (覚え方: where exception occurred at.)"filename:line:in `methodname'"
$&
現在のスコープで最も最近の正規表現のパターンマッチでマッチし
た文字列.(覚え方: いくつかのエディタでの&
と同じ)
$`
現在のスコープで最も最近の正規表現のパターンマッチでマッチし
た部分より前の文字列.(覚え方: `
は文字列の前に
置かれる)
$'
現在のスコープで最も最近の正規表現のパターンマッチでマッチし
た部分より後ろの文字列.(覚え方: '
は文字列の後
ろに置かれる)
$+
現在のスコープで最も最近の正規表現のパターンマッチでマッチし た中で最後の括弧に対応する部分文字列.いくつかある選択型のパ ターンのどれがマッチしたのか分からない時に便利(覚え方: be positive and forward looking.)
$1, $2...
最後に成功したパターンマッチでn番目の括弧にマッチした値が格
納されます.該当する括弧がなければnil
が入ってい
ます.(覚え方: \数字 のようなもの)
$~
現在のスコープで最後に成功したマッチに関する情報.これを設定
すると$&
や
`$1...$9'などの値が変化します.
このデータからn番目のマッチ($n)を取り出すためには
$~[n]
で参照できます.
(覚え方: ~ はマッチに使われる)
この変数はローカルスコープです.
$=
パターンマッチや文字列の比較でアルファベットの大文字小文字を 区別するかどうかのフラグ.デフォルトはnil.(覚え方: = は比較 に使われる)
$/
入力レコードセパレータ.デフォルトは"\n".
awkのRS変数のように働きます.この変数にnilを設
定するとファイル全体を一度に読み込みます.$/
に
は正規表現は使えません.(覚え方: 詩では / を行の区切りに使う)
$\
出力レコードセパレータ.この変数に文字列を指定すると
IO#write
や
print
の度に最
後にこの文字列を付加して出力します.デフォルトは
nil
でこの場合なにも追加しません.
(覚え方: It's just like /, but it's what you get "back" from
Ruby.)
$,
Array#join
のデフォ
ルトの区切り文字列.
print
の各引数
の間に出力される文字列.
(覚え方: print で , があるところで出力される)
$;
String#split
.
のデフォルトの区切り文字.
$.
最後に読んだ入力ファイルの行番号.
$<
引数(なければ標準入力)で構成される仮想ファイル.つまり
定数ARGFの別名.
(覚え方: <
はシェルの入力元指定)
$>
print
や
printf
のデフォルト
の出力先.初期値はSTDOUT
.`-i'オプ
ションを指定した場合には読み込み元と同じ名前のファイル.(覚
え方: >
はシェルの出力先指定)
$_
最後にgets
またはreadline
で読み込んだ文字列.
EOF に達した場合には、nil.この変数はローカルスコープです.
(覚え方: Perlと同じ)
$0
現在実行中のRubyスクリプトの名前.OSによってはこの変数に代入すると ps(1)の出力が変化します.この機能はプログラムの 現在の状態を表示するのに便利です.(覚え方: sh や kshと同じ)
$*
Rubyスクリプトに与えられた引数.Ruby自身に対する引数は取り除 かれています.(覚え方: sh や kshと同じ)
$$
現在実行中のRubyプロセスのpid.(覚え方: シェルと同じ)
$?
(このthreadで)最後に実行した子プロセスのstatus.
$:
load
や
require
がファイルをロードする時に検索するディレクトリのリストを含む
配列.
起動時には, -Iオプションで指定し たディレクトリ,環境変数RUBYLIBの値,デフォルト値 (コンパイル時に指定する,多くの場合 "/usr/local/lib/ruby"), "."(カレントディレクトリ)を値として持ちます. (覚え方: コロンは環境変数PATHの区切り文字である)
$"
require
でロー
ドされたファイル名を含む配列.
require
で同
じファイルを2回ロードしないために用いられています.(覚え方:
prevent files to be doubly quoted(loaded))
$DEBUG
-dフラグの状態 (真偽値).
$FILENAME
仮想ファイルARGF
で現在読み込み中の
(メソッドgetsが今読んでいる)ファイル名.ARGF.filename
と同じ.
$LOAD_PATH
$:
の別名.
$stdin
標準入力.
$stdout
標準出力.
$stderr
標準エラー出力.
$VERBOSE
冗長メッセージフラグ.Rubyインタプリタへの -vオプション でセットされます.
$KCODE
Rubyの処理する文字コード. 文字列で指定し,`E'または`e'の場 合は文字列やアクセスするファイルの内容のコードがEUCであると 仮定します.同様に`S'または`s'の場合はSJISとして処理します. `U'または`u'の場合はUTF-8として処理します. `N'または`n'の場合は漢字を処理しません. コンパイル時の設定でデフォルトが決まります.
Rubyインタプリタのコマンドライン情報を示す一連の変数がありま
す.形式は$-?
で?の部分にオプションの一文字が入
ります.
TRUE
代表的な真の値.Rubyでは偽でない値(falseでもnilでもない値)は 全て真とみなされます.
FALSE
偽の値
NIL
nil.
STDIN
標準入力.
$stdin
のデフォルト値.
STDOUT
標準出力.$stdout
のデフォルト値.
STDERR
標準エラー出力.$stderrr
のデフォルト値.
ENV
環境変数を表す(疑似)連想配列.この連想配列 の値を変更すると子プロセスの環境として引き継がれます.
ARGF
引数(なければ標準入力)で構成される仮想ファイル.つまり
gets
はARGF.gets
と同じ意味です.
ARGF.file
で現在読み込み中のファイルオブジェクトが,
ARGF.filename
で現在読み込み中のファイル名が
得られます.
ARGV
$*
と同じ
DATA
スクリプトの__END__
以降をアクセスするファイルオ
ブジェクト.スクリプトがファイルに格納されていない時には定義
されない.
RUBY_VERSION
Rubyのバージョンを示す文字列.
RUBY_RELEASE_DATE
Rubyのリリース日を示す文字列.
RUBY_PLATFORM
プラットフォームを示す文字列.