Attribute-Overload
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
use warnings;
use strict;
use Attribute::Overload;
use Test::More tests => 3;
package MyOverload;
sub new {
my ($class, $value) = @_;
bless \$value => $class;
}
sub add : Overload(+) {
my ($self, $value) = @_;
$$self += 2 * $value;
return $self;
}
sub cmpnum : Overload(==) {
my $self = shift;
$$self;
}
# double each digit
sub to_print : Overload("") {
join '' => map { "$_$_" } split // => ${ $_[0] };
}
package main;
my $o = MyOverload->new(57);
ok($o == 57, 'passing value to constructor');
$o += 23; # adds 46 to give 103
ok($o == 103, 'after addition');
# stringify prints each digit twice, i.e. '110033'
ok("$o" eq '110033', 'stringification');
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.598 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )