use overload

Im Number-Modul:

package Number;
use overload   "+" => \&myadd,
               "-" => \&mysub,
              "*=" => "multiply_by";

In Ihrem Programm:

use Number;
$a = new Nuiriber 57;
$b=$a+ 5;

Die fest eingebauten Operatoren funktionieren bei Strings und Zahlen ausgezeichnet, ergeben angewandt auf Objektreferenzen aber nur wenig Sinn (weil Perl im Gegensatz zu C und C++ keine Zeigerarithmetik erlaubt). Das overload-Pragma erlaubt Ihnen die Redefinition dieser eingebauten Operationen, wenn sie auf von Ihnen entworfene Objekte angewandt werden. Im vorigen Beispiel definiert der Aufruf des Pragmas drei Operationen für Number-Objekte neu: Die Addition ruft die Funktion Number::myadd auf, die Subtraktion die Funktion Number::mysub, und der multiplikative Zuweisungsoperator ...

Get Programmieren mit Perl now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.