• Publicidad

Duda sobre llamada a subrutina con array como parámetro

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Duda sobre llamada a subrutina con array como parámetro

Notapor fgalves » 2007-01-18 05:43 @280

Hola a todos,

Tengo una duda muy básica sobre llamadas a subrutinas con un array pasado como parámetro de entrada:


He aquí la subrutina:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# Removes the repeated Family Instances in the array
sub removeRepeatedFamilyInstances {

    my @families = $_[0];
   
    my %seen = ();
    @families = grep { ! $seen{ $_ }++ } @families;

    return @families;
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Y he aqui la llamada a la subrutina:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#removes repeated instances of a same family
        @availableFamilies = &removeRepeatedFamilyInstances(@availableFamilies);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El caso es que no parece funcionar.. En @availableFamilies, tengo una colección de strings. El caso es que la subrutina me devuelve únicamente el primer string, y los demás se pierden. ¿Alguien ve lo que estoy haciendo mal?

¡¡Muchas gracias!!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Publicidad

Notapor monoswim » 2007-01-18 08:33 @398

Es que estás cargando solo el primer elemento del array...

Tienes que hacer esto

my @families = @_;

Porque al mandar el array te está mandando todos los elementos por separado...Sería bueno que mandaras el array como REFERENCIA para no copiar la información y ahorrar memoria...te recomiendo que lo investigues un poco...

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado