1use warnings; 2use strict; 3use Test::Simple tests => 3; 4 5package Foo; 6use overload 7 nomethod => sub { die "unimplemented\n" }; 8sub new { bless {}, shift }; 9 10package main; 11 12my $foo = Foo->new; 13 14eval {my $val = $foo + 1}; 15ok( $@ =~ /unimplemented/, "'+' not implemented; 'nomethod' special key invoked" ); 16 17eval {$foo += 1}; 18ok( $@ =~ /unimplemented/, "'+=' not implemented; 'nomethod' special key invoked" ); 19 20eval {my $val = 0; $val += $foo}; 21ok( $@ =~ /unimplemented/, "'+=' not implemented; 'nomethod' special key invoked" ); 22 23