Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: (SOLVED) parsing problems with prototype blocks (precedence)

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


in reply to Re: (SOLVED) parsing problems with prototype blocks (precedence)
in thread (SOLVED) parsing problems with prototype blocks (precedence)

UPDATE: I may have misunderstood your post, and FIXED is meant as workaround.

> Fixed: ( foo {$Q} ) + foo {$t}

no, it's not, because this was what I expected.

> + is treated as the unary operator, so

And it would be binary

use strict; use warnings; sub foo (&){ shift->()} sub baz (&){ shift->()} sub bar {3} my ($Q,$t,$res) = (10,3); sub tst { ( foo {$Q} ) + baz {$t}; } use B::Deparse; print B::Deparse->new('-p')->coderef2text(\&tst); print tst();
C:/Strawberry/perl/bin\perl.exe -w d:/tmp/pm/sym.pl { use warnings; use strict; (foo(sub { $Q; } ) + baz(sub { $t; } )); }13

update
FWIW I chose + for an example which at least compiles b/c of the ambiguity.

I originally used / which fails without having any unary meaning (it's seen as the start of a m//)

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

Replies are listed 'Best First'.
Re^3: (SOLVED) parsing problems with prototype blocks (precedence)
by ikegami (Patriarch) on Nov 04, 2021 at 17:12 UTC

    Yes, by "Fixed: ( foo {$Q} ) + foo {$t}", I meant "You can fix the problem by using ( foo {$Q} ) + foo {$t}"

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (None)
    As of 2024-04-25 01:13 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found