Re: Usenix BOF anyone

[email protected] ("Joseph N. Hall")
Newsgroups perl.trainers
Message-ID <[email protected]>
* ObPerl: How to explain to a class of complete novices why parens are needed
* in my ($x, $y); but if you follow a general rule of "put parens in
* everywhere until you figure out where you can leave them out" you get
* benign warnings "foo(...) interpreted as function"...

Because my acts as a "list modifier."  The semantics are the same whether 
or not you have the my:

  $a, $b = $x, $y;      # not too good
  my $a, $b = $x, $y;   # not too good either

  ($a, $b) = ($x, $y);
  my ($a, $b) = ($x, $y);

No matter what you do, the = operator always has higher precedence
than the comma operator.  Whether there's a my involved doesn't affect
that.

myterm  :       '(' expr ')'
                        { $$ = sawparens($2); }
        |       '(' ')'
                        { $$ = sawparens(newNULLLIST()); }
        |       scalar  %prec '('
                        { $$ = $1; }
        |       hsh     %prec '('
                        { $$ = $1; }
        |       ary     %prec '('
                        { $$ = $1; }
        ;


  -joseph

--
Joseph N. Hall, 5 Sigma Productions        mailto:" <joseph> "@5sigma.com
Author, Effective Perl Programming . . . . . http://www.effectiveperl.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.