Der Copy-Konstruktor (=)

Obwohl es wie ein gewöhnlicher Operator aussieht, hat das = als Überlade-Schlüssel eine spezielle und etwas unintuitive Bedeutung. Es überlädt nicht den Zuweisungsoperator. Das geht nicht, weil dieser Operator für die Zuweisung von Referenzen reserviert bleiben muß, oder alles bricht zusammen.

Der Handler für = wird in den Situationen genutzt, wo ein »Mutator« (wie ++, -- oder ein beliebiger Zuweisungsoperator) auf eine Referenz angewendet wird, die Ihr Objekt mit anderen Referenzen teilt. Der =-Handler erlaubt es Ihnen, den Mutator abzufangen und das Objekt selbst zu kopieren, so daß nur die Kopie verändert wird. Anderenfalls würden Sie das Original verändern:

$copy = $original; # Kopiert nur die Referenz ++$copy; # Ändert ...

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.