[Moscow.pm] weaken with функции

Alexander Lourier aml на rulezz.ru
Вс Фев 27 22:11:20 PST 2011


В письме Monday 28 February 2011 00:49:41 Ivan Petrov написал:

> некий код:
> 
> sub method
> {
>    my $self = shift;
>    ...
>    $self->{handle} = AnyEvent::Handle fh => $fh, on_error => sub {
> $self->{error} = $! };
>    ...
> }
> 
> получается что каллбек цепляет ссылку на $self и из за него деструктор
> вызван не может быть до тех пор пока handle не уничтожится.
> в случае с просто ссылками - понятно: weaken на них. а здесь куда можно
> weaken натравить чтобы деструктор у такого объекта работал?

После $self = shift; добавить weaken($self);

-- 
Alexander Lourier, http://aml.rulezz.ru/


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