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