What is the difference between puts, print, and p in Ruby?

Beginner

Answer

  • puts: Outputs value with newline, returns nil, calls .to_s
  • print: Outputs value without newline, returns nil, calls .to_s
  • p: Outputs inspected value with newline, returns the value, calls .inspect
puts "Hello"    # Hello\n (returns nil)
print "Hello"   # Hello (returns nil)
p "Hello"       # "Hello"\n (returns "Hello")