From: Robert Klemme Date: 2009-06-09T23:07:36+09:00 Subject: Re: "puts"ing an array 2009/6/9 Rob Biedenharn : > On Jun 9, 2009, at 8:52 AM, Peter Bailey wrote: > >> Hi, >> In the "pickaxe" book I see how to use a "puts" to populate a file with >> data. I try the same thing, and, it works, but, it's listing the data as >> an array. How can I get separate lines for each item in the array? >> Thanks, >> Peter >> >> In the book: >> File.open("output.txt", "w") do |file| >> file.puts "Hello" >> file.puts "1 + 2 = #{1+2}" >> end >> # Now read the file in and print its contents to STDOUT >> puts File.read("output.txt") >> produces: >> Hello >> 1 + 2 = 3 >> >> My script: >> Dir.chdir("L:/png/69000") >> files = Dir.glob("*.png") > > Dir.glob returns an Array >> >> File.open("F:/workflows/graphics/receipts/pngfiles.txt", "w") do |file| >>  file.puts "#{files}" >> end > > The default Array#to_s is like Array#join('').  You probably want to do > either: >  file.puts files.join("\n") > or iterate on the files: >  files.each do |pngfilename| >    file.puts pngfilename >  end It's even simpler: file.puts files Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/