Thread Subroutine calls über mehrere packages / module (7 answers)
Opened by Haspasus at 2009-11-17 22:15

MatthiasW
 2009-11-18 20:10
#128303 #128303
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
2009-11-17T23:29:34 topeg
...[Zweite Variante, Modul1:]
Code (perl): (dl )
1
2
3
4
5
6
7
sub new {
    my $class = shift;
    my $self  = {};
    my $self->{FehlerHandler} = $self; # <--
    bless($self,$class);
    return $self;
}

An dieser Stelle (Z. 4) erzeugst du eine zirkuläre Referenz. Damit habe ich mich aber noch nicht wirklich auseinandergesetzt, also weiß ich nicht ob weaken() hier angebracht wäre? (Ein kleiner Test meinte: Ja.)
Bei deinem Beispiel spielt es keine Rolle, da der FehlerHandler überschrieben wird, aber ansonsten würde ein Objekt erst freigegeben, wenn das Skript beendet wird, oder?

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'

View full thread Subroutine calls über mehrere packages / module