Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur eBooks für mein Endgerät anzeigen:

 

Newsletter

Einführung in Perl-Objekte, Referenzen & Module

von: Randal L. Schwartz, Tom Phoenix

O'Reilly Verlag, 2004

ISBN: 9783897216938, 251 Seiten

Format: PDF, OL

Mac OSX,Windows PC,Mac OSX,Windows PC Apple iPad, Android Tablet PC's Online-Lesen für: Linux,Mac OSX,Windows PC

Preis: 25,00 EUR

Ersparnis: 7,00 EUR

  • Oracle 10g
    Oracle 10g für den DBA
    C /C++ Referenz - Studienausgabe
    C++ echt einfach
    Echt coole Perl Skripte - Nützliche Perl-Skripte, die knifflige Probleme lösen
    Das Java Premium-Codebook
    Perl Kochbuch
    Solaris 9 Systemadministration in 21 Tagen
  • Programmieren mit Perl
    Scriptprogrammierung für Solaris und Linux
    J2EE und JBoss Grundlagen und Profiwissen

     

     

     

     

     

     

 

Mehr zum Inhalt

Einführung in Perl-Objekte, Referenzen & Module


 

KAPITEL 10 Destruktoren für Objekte (S. 125-126)

In den vorigen zwei Kapiteln haben wir uns mit den Grundlagen des Anlegens von Objekten und deren Manipulation beschäftigt. In diesem Kapitel geht es um ein genauso wichtiges Thema: Was passiert, wenn ein Objekt gelöscht wird?

Wie Sie aus Kapitel 4 wissen, gibt Perl den Arbeitsspeicher für eine Datenstruktur automatisch wieder frei und entfernt die Links auf andere Daten, sobald die letzte Referenz darauf gelöscht wurde. Das heißt natürlich, dass andere (»innere« oder »enthaltene«) Datenstrukturen eventuell auch gelöscht werden.

Standardmäßig funktioniert dieses Vorgehen auch bei Objekten, weil Objekte die gleiche Referenzenstruktur verwenden, um komplexere Objekte anzulegen. Ein Objekt, das auf einem Hash basiert, wird endgültig gelöscht, wenn die letzte Referenz auf den Hash entfernt wird. Sind die Werte des Hashs selbst Referenzen, werden diese auf ähnliche Weise entfernt, wodurch möglicherweise weitere Dinge gelöscht werden.

Vielleicht benutzt ein Objekt aber auch eine temporäre Datei, um Daten abzulegen, die nicht komplett in den Arbeitsspeicher passen. Das Dateihandle für diese Datei kann als Instanzvariable im Objekt gespeichert werden. Auch wenn der normale Mechanismus zum Zerstören eines Objekts das Handle korrekt schließt, bleibt die temporäre Datei weiterhin auf Ihrer Festplatte – es sei denn, Sie ergreifen weitere Schritte.

Um bei der Zerstörung eines Objekts die angemessenen Aufräumarbeiten durchführen zu können, brauchen Sie eine Möglichkeit, davon zu erfahren. Glücklicherweise kann Perl Sie auf Anfrage über die Zerstörung eines Objekts informieren. Diese Benachrichtigung auf Anfrage richten Sie ein, indem Sie einem Objekt eine DESTROY-Methode mitgeben.

Sobald die letzte Referenz auf ein Objekt, beispielsweise $bessie, gelöscht wird, ruft Perl diese Methode wie folgt auf:

$bessie->DESTROY

Dieser Methodenaufruf funktioniert wie die meisten anderen Methodenaufrufe auch: Perl sucht als Erstes in der Klasse des Objekts nach der Methode und arbeitet sich dann in der Vererbungshierarchie nach oben, bis eine passende Methode gefunden wurde. Im Gegensatz zu anderen Methoden gibt es in diesem Fall jedoch keine Fehlermeldung, wenn keine passende Methode gefunden werden konnte.

Wenn Sie dies auf unsere Klasse Animal aus Kapitel 9 anwenden wollen, können Sie sich für das Debugging mit Hilfe einer DESTROY-Methode ausgeben lassen, welche Objekte gelöscht werden: ....