Ruby 3.2 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Kernelモジュール > $_
$_ -> 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