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