Formas de LLamada

Si la sobrecarga fué especificada a través de una referencia a subrutina se usa una llamada como subrutina mientras que si se especificó como referencia simbólica se usa la sintáxis de método. Por ejemplo, si $a y $b son dos objetos Math::BigFloat, para las declaraciones

package Math::BigFloat;

use overload "*"   => \&fmul,
             "+"   => "fadd",
             "neg" => sub { Math::BigInt->new($_[0]->fneg()) };
tendríamos los siguientes ejemplos de traducciones:

$a*$b Math::BigFloat::fmul($a, $b, "")
$a+$b $a->fadd($b, "")
-$a (sub { Math::BigFloat->new($_[0]->fneg()) })->($a, undef, "")

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