[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 было извлечено…
URL: http://mail.pm.org/pipermail/moscow-pm/attachments/20080521/3b7e32d5/attachment.html
Подробная информация о списке рассылки Moscow-pm