parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Как правильно отрабатывается присваивание с использованием хеш, 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