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?

Respuestas a la pregunta(8)

Su respuesta a la pregunta