On Sun, Feb 02, 2003 at 12:36:52PM +0100, ts wrote:
> B> But it's not a local variable - it's a formal parameter to a block. At
> B> least, that's how I look at it :-)
> 
>  You have found where is your problem, ruby don't see it like this
...
> [[1, 2]].each {|a.a, $m| }
> p a.a, $m

Ugh! Thanks though, that helps me see how the current behaviour (|x| assigns
to existing local variable x) arises.

It's difficult to see how that could be made consistent with the proposed
new behaviour; you can't have a block-local value for 'a.a', because it's
not a variable, it's a method call.

Should the above usage be outlawed? In the same way as:

def myfunc($m) 
puts $m
end
==> compile error: formal argument cannot be a global variable

Regards,

Brian.