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.