Search code examples
rubyprintf-debugging

What is "p" in Ruby?


I'm sure it's a silly question to those who know, but I can't find an explanation of what it does or what it is.

CSV.open('data.csv', 'r') do |row|
  p row
end

What does "p row" do?


Solution

  • p() is a Kernel method

    It writes obj.inspect to the standard output.

    Because Object mixes in the Kernel module, the p() method is available everywhere.

    It's common, btw, to use it in poetry mode, meaning that the parens are dropped. The CSV snippet can be written like...

    CSV.open 'data.csv', 'r' do |row|
      p row
    end
    

    It's documented here with the rest of the Kernel module.