What's going on with overloading in 0.60? The docs say it will compare a string-overloaded object with a string but when I run the code below I get
======= # x = stringy not ok 1 # Failed test (over.pm at line 8) Operation `eq': no method found, left argument in overloaded package over, right argument has no overloaded magic at /usr/lib/perl5/5.8.5/Test/More.pm line 1073. ======= If I uncomment the eq overloading I get ======= # x = stringy not ok 1 # Failed test (over.pm at line 8) # Structures begin differing at: # $got = Does not exist # $expected = 'stringy' ======= which is even stranger. F use strict; use warnings; use Test::More 'no_plan'; my $x = over->new(); diag("x = $x") is_deeply($x, "stringy"); package over; use overload # 'eq' => \&get_eq, '""' => \&get_s; sub new { return bless {}, "over" } sub get_s { return "stringy" } sub get_eq { return 1 }