Personally I am genuinely confused. I like the scoping rules as they
are, and I have never had any problem with them (including in
multi-threaded code). I've always known that the |x| notation was an
assignment (although I'd missed the trick about using it with an
assignment type method call - Cool :-)

Could somebody please explain why anyone would write code like

a=1
[1..3].each {|a| #do something }

and then be surprised about side effects. It just seems like asking
for trouble to me.

Honestly, I'm not trolling or trying to dis anyone. I just *don't*
understand!

best regards,
treefrog.