Here x is a variable(array_variable) it contains  5 elements

x = [1,2,3,4,5]


x.each do |r|{puts "#{r}"}
end

=> the result like this order
1
2
3
4
5


This code print x.length time print var= 10

x.each do |r|{
var = 10
puts "#{var}"}
end

=> the result like this order
10
10
10
10
10

But you gave
x.each do |r|{
var = 10
}
end
puts "#{var}"

=> then the x.lenth'th last var value is printed here, the the reason u
got ten value

10

-- 
Posted via http://www.ruby-forum.com/.