LanX has asked for the wisdom of the Perl Monks concerning the following question:


I'm experimenting with some operator overloading and I'm getting bitten by the diamond operator. A numeric "less-then" < in list context is parsed as the start of a diamond glob <>

DB<9> sub bla { bless [@_], "Test" } DB<10> package Test; use overload "<" => sub { warn "works" }; DB<11> bla() < bla works at (eval 18) ... DB<12> bla < bla Unterminated <> operator at (eval 20) ...

I'm aware that I could give bla an empty prototype in line 9 or call it with an empty list (like in line 11), or embrace it in brackets, but I need it to swallow a list of args in other parts.

I'm not very confident there is a way but the almighty monastery is always able to surprise me... ;-)

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


for those wondering, other operators "work"

DB<13> package Test; use overload ">" => sub { warn "works" }; DB<14> bla > bla works at (eval 21)