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

module function Kernel.#p

p(*arg) -> object | Array[permalink][rdoc]

引数を人間に読みやすい形に整形して改行と順番に標準出力 $stdout に出力します。主にデバッグに使用します。

引数の inspect メソッドの返り値と改行を順番に出力します。つまり以下のコードと同じです。

print arg[0].inspect, "\n", arg[1].inspect, "\n", ...

整形に用いられるObject#inspectは普通に文字列に変換すると 区別がつかなくなるようなクラス間の差異も表現できるように工夫されています。

p に引数を与えずに呼び出した場合は特に何もしません。

[PARAM] arg:
出力するオブジェクトを任意個指定します。
[EXCEPTION] IOError:
標準出力が書き込み用にオープンされていなければ発生します。
[EXCEPTION] Errno::EXXX:
出力に失敗した場合に発生します。
[RETURN]
指定された引数 arg を返します。複数の引数が指定された場合はそれらを要素とする配列を返します。
puts "" #=> (空行)
p "" #=> ""

puts 50,"50"
#=> 50
#=> 50
p 50,"50"
#=> 50
#=> "50"

[SEE_ALSO] Object#inspect,Kernel.#puts,Kernel.#print