Los mecanismos para escribir un módulo como este 
los proporciona el módulo  overload.pm  debido a Ilya Zakharevich, 
el cual se incluye en la distribución estandard de Perl.
Este módulo permite la sobrecarga de operadores. Para sobrecargar los operadores
para una clase dada, hay que pasarle a la sentencia use una lista de 
pares operador => referencia a código:
package Math::BigFloat;
use overload "*"   => \&fmul,
             "+"   => "fadd",
             "neg" => sub { Math::BigInt->new($_[0]->fneg()) };
Cada pareja consiste de una clave, que especifica el operador a sobrecargar,
y una referencia a una subrutina, que será invocada cuando se encuentre
el operador. La clave neg corresponde al operador de negación unaria.
Casiano Rodríguez León
