Hopefully (I'm sure) somebody can shed a light on this. This caught me by surprise

ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux]
test.rb:
TEST = []
def procs &block
  TEST << block
end

#for n in [1,2,3] do
[1,2,3].each do |n|
  procs do
    puts "#{n}"
  end
end

TEST.each do |t|
  puts t
  t.call
end

With for loop
>> ruby test.rb
#
3
#
3
#
3

With each
>> ruby test.rb
#
1
#
2
#
3

I thought for-loop behaves the same as each. Apparently not. Why is this and is this a good thing?

Thank you in advance
-andre
_________________________________________________________________
Windows Live Hotmail and Microsoft Office Outlook together at last.  ¨Βετ ιτ ξοχ®