[Moscow.pm] Interesting behavior of 'delete' function

Alessandro Gorohovski an.gorohovski на gmail.com
Вс Дек 23 22:27:49 PST 2018


Здравствуйте уважаемое сообщество,

Просто мне хотелось обратить внимание что,
это одна из ситуаций, которая может приводит к "утечке" памяти (memory
leak).
Как то так.

пн, 24 дек. 2018 г. в 06:38, Трунаев Иван via Moscow-pm <moscow-pm на pm.org>:

> Ужас кошмарный. Почему в perl mail нет оператора karma? Coma. Ну если
> можно сделать kill или delete, то должен быть и karma. Buddha.
>
чт, 29 нояб. 2018 г. в 15:16, Alessandro Gorohovski via Moscow-pm <
> moscow-pm на pm.org>:
>
>> или здесь:
>> https://www.youtube.com/watch?v=2wxL3DYen5g
>>
>>
>> чт, 29 нояб. 2018 г. в 13:14, Alessandro Gorohovski <
>> an.gorohovski на gmail.com>:
>>
>>> чт, 29 нояб. 2018 г. в 13:06, Andrei <andrei.protasovitski на gmail.com>:
>>>
>>>> Всё верно.
>>>>
>>>> По шагам:
>>>>
>>>> delete $a{11}{21,24}{31}
>>>>
>>>> 1. Сначала ищется элемент $a{11}. Он есть, и он ссылка на хэш.
>>>> 2. Дальше в это подхэше ищется элемент $a{11}{21,24}. Список (21,24)
>>>> преобразуется в строку "21$;24". Такого элемента не находится, поэтому
>>>> из-за autovivification, включённого по умолчанию, этот элемент создаётся и
>>>> его значение устанавливается в undef.
>>>> 3. Далее ищется элемент $a{11}{21,24}{31}. Его нет, поэтому
>>>> значением $a{11}{21,24} становится ссылка на хэш, в котором снова
>>>> из-за autovivification создаётся элемент с ключом 31 и значением undef.
>>>> 4. И только после этого delete удаляет только что созданные элемент и
>>>> возвращает его значение undef.
>>>>
>>>> Элемент, созданный на шаге 2, никуда не девается, вот он там и сидит,
>>>> память занимает, программистов пугает.
>>>> :)
>>>>
>>>
>>> Да, Андрей, это всё верно вы представили/объяснили
>>> :)
>>> Подобную ситуацию пожалуйста посмотрите тут:
>>> https://www.youtube.com/watch?v=ZIig5fgp7nY
>>>
>>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
> --
> Иван Трунаев
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20181224/34ed1478/attachment.html>


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