>>>>> "C" == Conrad Schneiker/Austin/Contr/IBM <schneik / us.ibm.com> writes: C> (1..10).each{|i| (x = i; break) if (i == 4)} It depend how you interpret |i| Apparently many people (like me) see |i| as arguments, when ruby seems see only a multi-assignement. ruby is consistent in the sense that it give the same result for this example : a = x = 0 [[1, 2]].each do |a, b| x, y = a, b end a and x are local variables b and y are dynamic variables. Guy Decoux