[Moscow.pm] Как народ борится с глобальным деструктором

Dmitry Nizovtsev funt4k на gmail.com
Ср Май 21 03:48:47 PDT 2008


А попробуйте это
my $o2=new Screamer;
$o1->{o2}=$o2;

Заменить на
my $o2=new Screamer;
$o2->{o1}=$o1;


21 мая 2008 г. 13:44 пользователь Ivan B. Serezhkin <ivan на serezhkin.com>
написал:

> Dmitry Nizovtsev wrote:
> > Здраствуйте
> > Проблема в следущем есть обьект A который содержит ссылку на обьект B.
> > В деструкторе обьекта A используется ссылка на обьект B - всё хорошо
> > работает пока дело не доходит до глобального десктруктора. Глобальный
> > деструктор уничожает обьект B раньше обьекта A и естественно  обьект A
> > не может выполнить всех необхдимых действий в своём деструкторе.
> > Что народ может посоветовать в таком случае?
> писать как то так:
>
> my $o1=new Screamer;
> my $o2=new Screamer;
> $o1->{o2}=$o2;
> print "I hate this world\n";


>
> package Screamer;
> sub new {
>    my $self=bless {};
>    print "Created $self\n";
>    return $self;
> }
>
> sub DESTROY {
>    my $self=shift;
>    print "Destroyed $self\n";
> }
>
> --
> Ivan B. Serezhkin
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
> http://mail.pm.org/mailman/listinfo/moscow-pm
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: http://mail.pm.org/pipermail/moscow-pm/attachments/20080521/3b7e32d5/attachment.html 


Подробная информация о списке рассылки Moscow-pm