SPUG: interesting while() behavior and hosting recs
sthoenna at efn.org
Sun Oct 3 05:23:36 CDT 2004
On Fri, Oct 01, 2004 at 10:46:36AM -0700, Tim Maher wrote:
> As a case in point, I offer the widespread notion that parens
> function as "list constructors" in expressions like
> "@array=(1,2)" and "print (1,2)", which is tremendously useful,
> despite being less than a perfectly accurate representation of
> how those expressions are actually parsed and evaluated, IIRC.
> (What's the real story? Is it that the comma operator in list
> context returns all the expressions, so the parens are just there
> for reasons of precedence in the case of an assignment?)
They are just there for reasons of precedence. Parens really really
really truly don't function as list constructors.
> Surely, even in Perl, there are some elements of basic syntax
> that can be trusted to have concrete meanings -- like while's
> parens; aren't there? 8-}
While's parens are just part of the syntax; they don't function as
parens; as perly.y says:
loop : label WHILE '(' remember mtexpr ')' mblock cont
Same thing with the parentheses around a function's parameters.
More information about the spug-list