Rubic wrote: > I new to Ruby and I have lost touch with whatever little programming I > did know a few years back. Sorry if this is a lame question. > > How does one nest arrays? One possibility: array = [ ["foo", "bar"], ["baz", 42] ] > I want to check every element of the array and compare it against rest > of the elements of that array for repeat occurences. but for now I did > be happy if I can get to even print the 2 values, hence 'puts #i, #j' in > the code. > > > f = File.open("iplist.txt") irb(main):011:0> f.class => File > f1 = File.open("iplist.txt") irb(main):011:0> f1.class => File > f.each { |i| > f1.each { |j| > puts "#{i}, #{j}" > } > } If you want an Array, use File#readlines. This produces an array of all lines in a file (including the \n at the end of each line), and you can iterate over them. For example: C:\>ruby test.rb line1,line1 line1,line2 line1,line3 line2,line1 line2,line2 line2,line3 line3,line1 line3,line2 line3,line3 C:\>cat test.rb #Create Arrays for the files: f = File.readlines("test.txt") f1 = File.readlines("test.txt") #Iterate over the Arrays: f.each do |i| f1.each do |j| puts "#{i.chomp},#{j.chomp}" end end > With the above code I only get output of one successful iteration of > f.each and it stops and doesnt continue for the rest of the values of > f.each. Probably because you have one big string in the file, and thus only one object the block can iterate. But without sample data, I can't say more, really. > Surprisingly this works... > > > (0..5).each { |i| > (0..4).each { |j| > puts "#{i}, #{j}" > } > } [snip] > whats the difference between the codes thats causing this error? They > are both arrays aint it? 0..5 and 0..4 are Ranges, not Arrays, and thus #each iterates over each element of the Range. -- Phillip "CynicalRyan" Gawlowski http://cynicalryan.110mb.com/ Rule of Open-Source Programming #7: Release early, release often. Clean compilation is optional.