Devuelve una matriz completa de una subrutina Perl ineficiente?
A menudo tengo una subrutina en Perl que llena un conjunto de información. Como también estoy acostumbrado a hackear en C ++, me encuentro a menudo hacerlo así en Perl, usando referencias:
my @array;
getInfo(\@array);
sub getInfo {
my ($arrayRef) = @_;
push @$arrayRef, "obama";
# ...
}
en lugar de la versión más sencilla:
my @array = getInfo();
sub getInfo {
my @array;
push @array, "obama";
# ...
return @array;
}
La razón, por supuesto, es que no quiero que la matriz se cree localmente en la subrutina y luego se copie al regresar.
¿Está bien? ¿O Perl optimiza eso de todos modos?