Tengo una duda muy básica sobre llamadas a subrutinas con un array pasado como parámetro de entrada:
He aquí la subrutina:
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;
}
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:
Using perl Syntax Highlighting
#removes repeated instances of a same family
@availableFamilies = &removeRepeatedFamilyInstances(@availableFamilies);
@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