From: Rob Biedenharn Date: 2009-06-09T22:46:19+09:00 Subject: Re: "puts"ing an array 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 > > produces: > 69116 > .png69251.png69391.pngAZ69080.pngAZ69982.pngcx69362.pngcx69363.png > . . . -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com