Bueno, soy nuevo en este foro, pero debido a que estoy empezando a administrar sistemas UNIX me da a mi que voy a empezar a dar vueltas por aquí
Bueno, debido a esto, estoy empezando a programar en Perl y la verdad que me siento un poco zote, así que voy paso a paso.
El motivo por el que pongo este post es porque llevo horas pegándome con este Hash y no sé por qué al ejecutarlo me devuelve 3 veces el valor.
Sé que hay maneras más fáciles declarando los valores del hash en la forma $hash{$valor} pero quiero hacerlo con búsquedas dentro del hash.
Using perl Syntax Highlighting
#!/usr/bin/perl -w
my %nombresde = qw {
nico perez
gonzalo garcia
luisin garcia
};
chomp (my $busca = <STDIN>);
foreach $encontradokey (sort keys %nombresde)
{
if ($encontradokey eq $busca)
{
print "lo he encontrado, su apellido es $encontradokey";
}
else
{
print "tu nombre $busca no lo tengo dado de alta, sorry";
}
}
my %nombresde = qw {
nico perez
gonzalo garcia
luisin garcia
};
chomp (my $busca = <STDIN>);
foreach $encontradokey (sort keys %nombresde)
{
if ($encontradokey eq $busca)
{
print "lo he encontrado, su apellido es $encontradokey";
}
else
{
print "tu nombre $busca no lo tengo dado de alta, sorry";
}
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Este es el código, también he probado en vez del foreach con each() para que me retorne los dos valores de clave y valor, pero ahí sí me funciona mejor aunque al hacerte tres iteraciones me devuelve 3 veces el texto del else (no del if)
No sé, acepto cualquier tipo de sugerencia, recomendación, etc. etc...
¡Gracias!