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.
In reply to Re: Disabling the interpretation of diamond <> operator in package?
by haj
in thread Disabling the interpretation of diamond <> operator in package?
by LanX
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |