Date: 2008-09-04 07:47 pm (UTC)
allter: (0)
From: [personal profile] allter
Угу.. Вообще. Если такая структура создаётся и не разрывается программером, то живёт до конца жизни скрипта.

Но в последних версиях перла есть выход - так называемое ослабление ссылок. При этом для одного элемента из ссылаемых данных количество ссылок на 1 меньше "виртуальных ссылок". И при разрушении ключевого элемента структуры всё нормально освобождается - деструкторы вызываются.

В перле это выглядит так:
{
my ( %a, %b );
$a{x} = \%b; # ссылка на b
$b{x} = \%a; # ссылка на a
use Hash::Util 1.19 qw(weaken);
weaken $b{x};
}
# Все данные сносятся. Точнее освобождаются. Что при этом происходит с реально захаваной памятью - второй вопрос (к вопросу о malloc-е).
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

allter: (Default)
allter

October 2021

S M T W T F S
     12
3 456789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 12th, 2025 06:45 pm
Powered by Dreamwidth Studios