Как правильно отрабатывается присваивание с использованием хеш, locals, result и как не наступить на грабли и плодить меньше мусора?
andylars 18.09.2015 16:22
/ 18.09.2015 16:25
Дабы не тыкаться эмпирическим опытом,
хочу спросить как отрабатывается такая ситуация и как лучше делать, чтобы
не наступить на грабли, и плодить меньше мусора?
Ситуация: вызванный метод, что-то делает и присваивает хеш, какому-то внутреннему (self) объекту класса.
@create[]
$self.hsh[]
^method[argument_string]
@method[_arg][locals]
#...
$_tmp[
$.a[A]
$.b[B]
]
$self.hsh[$_tmp]
Вопрос: Т.к. содержимое $self.hsh является не копией,
а ссылкой на тот же хеш, что и в $_tmp, а $_tmp - локальная переменная метода.
То что будет по завершению метода?
Стоит ли беспокоиться, что:
$_tmp (залипнет в памяти), или что возможно какое-то обращение к $_tmp, которое перетрёт $self.hsh ?
Или просто $_tmp как ссылка на хеш - исчезнет по завершению метода, и по сути $self.hsh - останется единственным носителем ссылки на хеш?
- Как правильно отрабатывается присваивание с использованием хеш, locals, result и как не наступить на грабли и плодить меньше мусора?, andylars 18.09.2015 16:22 / 18.09.2015 16:25
- Ответ, Misha v.3 [M] 19.09.2015 00:37