O'Reilly logo

Programmieren mit Perl by Jon Orwant, Tom Christiansen, Larry Wall

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required