matz / zetabits.com (Yukihiro Matsumoto) writes: [...] > I meant propagation from local variable scope made by block, not out > of other scopes (methods, classes etc.) Do you mean that following program would be valid: for i in 0..10 puts "in #{i}" [1,2].each { |j| puts "each #{j}" } puts "each ended with #{j}" end In my opinion, this is super-dirty, and by far something you don't expect from your program. I don't know any language that would allow this kind of thing? Fortunately, this is not allowed in current Ruby... Only situation under which I see this happening, would be that new <..> notation would be used all the times, and one would use |..| when he explicetely needs that his variable get exported in the outer scope. Is it more or less what you see happening? I think we need to keep a clean and clear situation for variable scoping, with languages for which variables have no types and no declaration is needed, just as Ruby is[1]. Footnotes: [1] quoting ruby(1) :-) -- Guillaume Cottenceau - http://mandrakesoft.com/~gc/