El Módulo overload

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
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19