У меня часто есть подпрограмма в Perl, которая заполняет массив некоторой информацией. Поскольку я также привык к взлому на С++, я часто нахожу это в Perl, используя ссылки:
my @array;
getInfo(\@array);
sub getInfo {
my ($arrayRef) = @_;
push @$arrayRef, "obama";
# ...
}
вместо более простой версии:
my @array = getInfo();
sub getInfo {
my @array;
push @array, "obama";
# ...
return @array;
}
Причина, конечно, в том, что я не хочу, чтобы массив был создан локально в подпрограмме, а затем скопирован при возврате.
Это правильно? Или Perl оптимизирует это в любом случае?