From: Rick DeNatale Date: 2007-12-14T05:12:11+09:00 Subject: Re: Using print and puts for output On 12/13/07, John Maclean wrote: > > ## Thu 13 Dec 2007 07:22:13 PM GMT > # just play with an array and see what you can do with it > a = `uname -a`.to_a > print a.class > puts a.class > __END__ > what's the difference bewteen these two methods of printing? Both say > the same thing. Also how can I find out for myself with ri? ri IO.print > << is that it? ri IO.puts << is that it? Puts is defined in terms of print, and handles multiple arguments and elements ending with a separator somewhat differently shadowfax:~/ssanta rick$ qri io#puts ---------------------------------------------------------------- IO#puts ios.puts(obj, ...) => nil ------------------------------------------------------------------------ Writes the given objects to ios as with IO#print. Writes a record separator (typically a newline) after any that do not already end with a newline sequence. If called with an array argument, writes each element on a new line. If called without arguments, outputs a single record separator. $stdout.puts("this", "is", "a", "test") produces: this is a test shadowfax:~/ssanta rick$ qri Kernel#print ----------------------------------------------------------- Kernel#print print(obj, ...) => nil ------------------------------------------------------------------------ Prints each object in turn to $stdout. If the output field separator ($,) is not nil, its contents will appear between each field. If the output record separator ($\) is not nil, it will be appended to the output. If no arguments are given, prints $_. Objects that aren't strings will be converted by calling their to_s method. print "cat", [1,2,3], 99, "\n" $, = ", " $\ = "\n" print "cat", [1,2,3], 99 produces: cat12399 cat, 1, 2, 3, 99 -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/