Objekt :: Zerstörer.

Objekt :: Zerstörer kann Objekte mit kreisförmigen Referenzen normal zerstören.
Jetzt downloaden

Objekt :: Zerstörer. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Adam Kennedy and Igor Gariev
  • Website des Verlags:
  • http://search.cpan.org/~adamk/

Objekt :: Zerstörer. Stichworte


Objekt :: Zerstörer. Beschreibung

Objekt :: Zerstörer kann Objekte mit kreisförmigen Referenzen normal zerstören. Object :: Zerstörer kann Objekte mit kreisförmigen Referenzen herstellen, die normalerweise zerstören. Synopssis verwenden Objekt :: Zerstörer; ## Verwenden Sie einen Standalone-Zerstörer, um etwas ## freizusetzen, wenn es aus dem Umfangsblock herausfällt: {mein $ tree = html :: treebuilder-> new_from_file ('somefile.html'); mein $ sentry = object :: destroyer-> neu ($ tree, 'löschen'); ## Hier können Sie sicher sterben, zurückkehren, den letzten Block oder den nächsten Block anrufen. ## Der Baum wird automatisch gelöscht} ## Verwenden Sie es, um kreisförmige Referenzen zu brechen {My $ var; $ var = $ var; mein $ sentry = object :: destroyer-> neu (sub {undef $ var}); ## Keine Speicherlecks mehr! ## $ var wird freigegeben, wenn $ Sentry den Block lässt} ## Zerstörer kann als nahezu transparentes Wrapper ## verwendet werden, der normal weiterleitet. {MEINE $ MESS = BIG :: CUSTUFEN :: MESS-> NEU; drucken $ mess-> hallo; } Paket Big :: Crusty :: Chaos; sub neu {mein $ self = segn {}, Schicht; $ selbst-> Bevölkerung; Rückgabeobjekt :: Zerstörer-> Neu ($ Self, 'Release'); } Sub Hallo {"Hallo World!" } Sub Release {... Ist-Code, um das Speicher zu bereinigen ...} Eines der größten Problem mit großem, verschachtelten Objektbäumen implementiert einen Weg für einen Kinderknoten, um seinen Elternteil zu sehen. Der einfachste Weg, dies zu tun, besteht darin, dem Kind zurück zu seinem Elternteil hinzuzufügen.Dieser führt zu einer "kreisförmigen" Referenz, bei der sich ein auf B bezieht sich auf A. Leider ist der Müllkollektorperl während der Laufzeit nicht in der Lage zu wissen, ob etwas anderes auf diese kreisförmigen Referenzen bezieht oder nicht. normale Variablen. Dies führt zu einem Speicherleck für die Lebensdauer des Prozesses, was eine schlechte Sache bei der Verwendung von Mod_Perl oder anderen Prozessen, die für lange Zeit leben. Der Griff ist in die kreisförmige Beziehung "angehängt", ist jedoch kein Teil davon. Wenn der Zerstörungsgriff aus dem Geltungsbereich fällt, wird er richtig aufgeräumt, und während Sie aufgeräumt werden, wird es auch die Datenstruktur erzwingen, an der sie gebunden ist, um auch zerstört zu werden. Object :: Zerstörer kann eine angegebene Versionsmethode auf einem Objekt (oder standardmäßig zerstörtes Verfahren) aufrufen. Alternativ kann er einen beliebigen Benutzercode ausführen, der als Code-Referenz an den Konstruktor weitergeleitet wird. Anforderungen: · Perl.


Objekt :: Zerstörer. Zugehörige Software