07b1dbea00969e6e2fda52408d381974b3771b84
[perl.git] / lib / Test / Simple / t / lib / MyOverload.pm
1 package Overloaded;
2 # $Id: /mirror/googlecode/test-more-trunk/t/lib/MyOverload.pm 67132 2008-10-01T01:11:04.501643Z schwern  $
3
4 sub new {
5     my $class = shift;
6     bless { string => shift, num => shift }, $class;
7 }
8
9 package Overloaded::Compare;
10 use vars qw(@ISA);
11 @ISA = qw(Overloaded);
12
13 # Sometimes objects have only comparison ops overloaded and nothing else.
14 # For example, DateTime objects.
15 use overload
16   q{eq} => sub { $_[0]->{string} eq $_[1] },
17   q{==} => sub { $_[0]->{num} == $_[1] };
18
19 package Overloaded::Ify;
20 use vars qw(@ISA);
21 @ISA = qw(Overloaded);
22
23 use overload
24   q{""} => sub { $_[0]->{string} },
25   q{0+} => sub { $_[0]->{num} };
26
27 1;