Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: Disabling the interpretation of diamond <> operator in package?

by haj (Vicar)
on Apr 10, 2018 at 17:26 UTC ( [id://1212642]=note: print w/replies, xml ) Need Help??


in reply to Disabling the interpretation of diamond <> operator in package?

I'm afraid you can't do this in your Perl program.

It's about context... and happens in the depths of Perl's toke.c. After the name of a subroutine, '<' might be the start of the sub's parameter list, either some diamond or a heredoc. Unfortunately, the code handling these does not have a fallback to "ok, let's try an operator instead" if it's neither. A '>', on the other hand, does not have any ability to produce a parameter list, and is only tested as an operator.

All the workarounds seen here - bla(), (bla), &bla, sub bla() - move Perl into a context where only operators are permitted, and I can't come up with anything else.

BTW: Overloading doesn't play any role here. It only affects code which has been successfully parsed.

  • Comment on Re: Disabling the interpretation of diamond <> operator in package?

Replies are listed 'Best First'.
Re^2: Disabling the interpretation of diamond <> operator in package?
by LanX (Saint) on Apr 10, 2018 at 17:48 UTC
    Thanks for checking the parser's code! haj++

    > BTW: Overloading doesn't play any role here. It only affects code which has been successfully parsed.

    Yeah I'm aware of this, but wanted to give some context (no pun intended ;-)

    Cheers Rolf
    (addicted to the Perl Programming Language and ☆☆☆☆ :)
    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://1212642]
help
Chatterbox?
and the web crawler heard nothing...

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

    No recent polls found