15 my @tests = ('$obj ~~ "key"', '"key" ~~ $obj', '$obj ~~ $obj');
18 package Test::Object::NoOverload;
19 sub new { bless { key => 1 } }
23 my $obj = Test::Object::NoOverload->new;
24 isa_ok($obj, 'Test::Object::NoOverload');
29 "we do not smart match against an object's underlying implementation",
34 "we die when smart matching an obj with no ~~ overload",
40 package Test::Object::CopyOverload;
41 sub new { bless { key => 1 } }
42 use overload '~~' => sub { my %hash = %{ $_[0] }; %hash ~~ $_[1] };
46 my $obj = Test::Object::CopyOverload->new;
47 isa_ok($obj, 'Test::Object::CopyOverload');
48 ok(eval, 'we are able to make an object ~~ overload') for @tests;