Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Kernelモジュール > $_

variable $_

$_ -> String | nil[permalink][rdoc]

最後に Kernel.#gets または Kernel.#readline で読み込んだ文字列です。 EOF に達した場合には、 nil になります。 (覚え方: Perlと同じ)

Kernel.#print のような Perl 由来の幾つかのメソッドは、引数を省略すると代わりに $_ を利用します。

この変数はローカルスコープかつスレッドローカルです。 Ruby起動時の初期値は nil です。

[SEE_ALSO] Kernel.#print, Kernel.#gets, Kernel.#readline, Object::ARGF

example.txt:

foo
bar
baz

このとき、コマンド ruby -e 'print while gets' example.txt は次を出力します

foo
bar
baz

ただし、このプログラムは次のように書く方がよりRuby的です。

ARGF.each do |line|
  print line
end