Joachim: Destruktor

Es gibt unter Perl Destruktoren - gut das habe ich herausgefunden.
Anscheinend muss der Destruktor einer Klasse DESTROY heißen.
Meine Fragen sind nun:

  • Muss ich die Funktion DESTROY definieren?
  • Kann ich veranlassen, das mein Objekt zerstört wird, wenn ich
      DESTROY aufrufe, oder ist die Zerstörung eines Objekts Perl
      zu überlassen?
  1. Hallo, <-- sowas nennt man eine Begruessung,

    Anscheinend muss der Destruktor einer Klasse DESTROY heißen.

    Richtig.

    Meine Fragen sind nun:

    • Muss ich die Funktion DESTROY definieren?

    Ja:

    sub DESTROY() {
      my $self = shift;
      #...
    }

    • Kann ich veranlassen, das mein Objekt zerstört wird, wenn ich
        DESTROY aufrufe, oder ist die Zerstörung eines Objekts Perl
        zu überlassen?

    Das bleibt dem GC von Perl ueberlassen, und der wird AFAIK erst bei
    Script-Ende aufgerufen.

    Gruesse,
     CK

    1. Hallo, <-- sowas nennt man eine Begruessung,

      Anscheinend muss der Destruktor einer Klasse DESTROY heißen.

      Richtig.

      Meine Fragen sind nun:

      • Muss ich die Funktion DESTROY definieren?

      Ja:

      sub DESTROY() {
        my $self = shift;
        #...
      }

      • Kann ich veranlassen, das mein Objekt zerstört wird, wenn ich
          DESTROY aufrufe, oder ist die Zerstörung eines Objekts Perl
          zu überlassen?

      Das bleibt dem GC von Perl ueberlassen, und der wird AFAIK erst bei
      Script-Ende aufgerufen.

      Gruesse,
      CK

      Vielen Dank und sorry für das vergessene >>Hallo<<