From: patrickdlogan@... (Patrick Logan) Date: 2003-02-12T13:21:40+09:00 Subject: Lexical scope and closures I read recently a flaw I did not previously know about... "Blocks (closures) in Ruby do not introduce a new scope, only methods do. This is generally acknowledged as a flaw by the Ruby community but is left in for backwards compatibility. For example: x = 0 [1,2,3].each{|x| print x} #x now equals 3" Of course this is just wrong. I am hoping no one expects an implementation of Ruby to actually behave this way. Is it generally accepted that programs should not expect this? I would not be ashamed to break this code in a new implementation of Ruby. -Patrick