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