From: Gary Wright Date: 2011-06-20T07:01:52+09:00 Subject: Re: CORE - Inconsistent Handling of Uninitialized Variables --Apple-Mail-6--498786687 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On Jun 15, 2011, at 5:00 PM, Ilias Lazaridis wrote: >=20 > I don't understand, why "p $xx" does not fail with and "not defined" > error. Because the parser 'sees' the variable $xx and defines it before "p $xx" = gets executed. This behavior is different than the local variable case because global = variables can be discovered by their name alone (i.e. they start with = '$'). This is a syntactic property that the parser can take advantage = of. That property doesn't exist for local variables because, in some = contexts, they are indistinguishable syntactically from a zero-argument = method call. Consider these examples separately and not as part of a = single snippet of code: a =3D b # 'a' is clearly a local variable while 'b' could be a = local variable or a zero-argument method call c =3D d() # 'd()' is clearly a zero-argument method call and *not* a = local variable, 'c' is a local variable do_something_with(x,y,z) # x,y, and z could be method calls or = variables Gary Wright= --Apple-Mail-6--498786687--