in reply to Re: (SOLVED) parsing problems with prototype blocks (precedence)
in thread (SOLVED) parsing problems with prototype blocks (precedence)
> 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
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 |