#! perl
package Foo;
# Copyright (C) 2004-2007, The Perl Foundation.
# $Id: overload.pl 21228 2007-09-12 19:23:12Z paultcochrane $
use strict;
use warnings;
use overload '*' => \&my_mul, 'fallback' => 1;
sub new {
my ( $class, $val ) = @_;
return bless \$val, $class;
}
sub my_mul {
return ${ $_[0] } * ${ $_[1] };
}
1;
package main;
my $a = Foo->new(7);
my $b = Foo->new(6);
my $r;
for my $i ( 1 .. 500_000 ) { $r = $a * $b }
print "$r\n";
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4:
syntax highlighted by Code2HTML, v. 0.9.1