Retornar uma matriz inteira de uma sub-rotina Perl é ineficient

Muitas vezes, tenho uma sub-rotina no Perl que preenche uma matriz com algumas informações. Como também estou acostumado a hackear em C ++, eu me vejo frequentemente fazendo isso no Perl, usando referências:

my @array;
getInfo(\@array);

sub getInfo {
   my ($arrayRef) = @_;
   push @$arrayRef, "obama";
   # ...
}

em vez da versão mais direta:

my @array = getInfo();

sub getInfo {
   my @array;
   push @array, "obama";
   # ...
   return @array;
}

O motivo, é claro, é que não quero que o array seja criado localmente na sub-rotina e depois copiado no retorn

Isso esta certo? Ou o Perl otimiza isso de qualquer maneir

questionAnswers(8)

yourAnswerToTheQuestion