[Vienna-pm] Vars in sub max {..}

Stefan Weiss spaceman at foo.at
Fri Feb 3 11:09:49 PST 2006


On 2006-02-03 16:10, peter pilsl wrote:
> ii) das explizite löschen kann zuwenig sein. Wenn eine struktur 
> referenzen auf code hat, der über eval definiert wurde, zB
> 
> Hier hilfts nix ausser eine eigene GC zu schreiben, die zB im zuge des 
> destroys von objekten oder teilweise auch beim verlassen von methoden 
> aufgerufen wird.

In manchen Situationen kann weaken() aus Scalar::Util hilfreich sein:

weaken REF
   REF will be turned into a weak reference. This means that it will
   not hold a reference count on the object it references. Also when
   the reference count on that object reaches zero, REF will be set to
   undef.

   This is useful for keeping copies of references , but you don't
   want to pre- vent the object being DESTROY-ed at its usual time.

       {
         my $var;
         $ref = \$var;
         weaken($ref);                   # Make $ref a weak reference
       }
       # $ref is now undef


cheers,
stefan


More information about the Vienna-pm mailing list