Я размышляю над лучшей практикой передачи хеш-ссылок для возвращаемых данных в/из функций.
С одной стороны, кажется интуитивным передавать только входные значения функции и иметь только возвращаемые выходные переменные. Тем не менее, передача хэшей в Perl может быть выполнена только по ссылке, поэтому она немного беспорядочна и может показаться скорее возможностью совершить ошибку.
Другим способом является передача ссылки во входных переменных, но тогда ее нужно решать в функции, и может быть неясно, что такое ввод, а какая - возвращаемая переменная.
Какова наилучшая практика в этом отношении?
Возвращает ссылки на массив и хэш, а затем разыгрывает его.
($ref_array,$ref_hash) = $this->getData('input');
@array = @{$ref_array};
%hash = %{$ref_hash};
Передайте ссылки (@array,% hash) функции, которая будет содержать выходные данные.
$this->getData('input', \@array, \%hash);