Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: Indirect Object Syntax

by LanX (Saint)
on Nov 07, 2021 at 09:16 UTC ( [id://11138543]=note: print w/replies, xml ) Need Help??


in reply to Re: Indirect Object Syntax
in thread Indirect Object Syntax

> I've started always using the second notation just because it never parses incorrectly.

I'd rather go for extra semicolon:

  • %set= map {; $_ => foo($_) } @list;
demo with perl -de0
DB<45> x map {a=>1} 1..3; # seeing hash, but co +mma missing syntax error at (eval 55)[c:/Strawberry/perl/lib/perl5db.pl:738] line +2, near "} 1" DB<46> x map {a=>1}, 1..3; # seeing hash again 0 HASH(0x2f501e8) 'a' => 1 1 HASH(0x2f4a1e8) 'a' => 1 2 HASH(0x2f4d0e0) 'a' => 1 DB<47> x map {;a=>1} 1..3; # seeing code 0 'a' 1 1 2 'a' 3 1 4 'a' 5 1 DB<48>

YMMV! :)

edit
Anyway, Perl should check for the missing comma. I suppose this happens too late for the parser.

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

Replies are listed 'Best First'.
Re^3: Indirect Object Syntax
by choroba (Cardinal) on Nov 07, 2021 at 21:50 UTC
    > Anyway, Perl should check for the missing comma. I suppose this happens too late for the parser.

    IIRC, the parser can only check the following token when deciding whether the { starts a block or an anonymous hash. That's also why the ; helps.

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]
      yeah, that's what I meant with

      > I suppose this° happens too late for the parser.

      °) i.e. the comma

      edit

      Anyway: any correctly parsed LIST inside an {anonymous hash} is also a legal block (just the LIST returned)

      Perl could always try to parse a block and look if there is a comma following.

      Cheers Rolf
      (addicted to the Perl Programming Language :)
      Wikisyntax for the Monastery

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11138543]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (4)
As of 2024-04-19 16:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found