[FoLUG] [perl - newbie] - scorrere un hash
Marco Baroni
baroni@sslmit.unibo.it
Mer 5 Gen 2005 15:36:23 CET
> foreach $key (%mod)
> {
> ....
> codice
> ....
> }
>
> e $key mi assumeva prima il valore pippo e poi anche pluto. e' normale?
>
Si'. In quella maniera ti dovrebbe dare: chiave1 valore1 chiave2
valore2 ...
Per accedere solo a chiavi o solo a valori puoi usare keys o values.
Inoltre, si dice che la maniera piu' efficiente di attraversare uno
hash prendendo sia chiavi che valori sia:
while (($k,$v) = each(%hash)) {
# adesso $k contiene la chiave e $v il valore corrispondente
}
each pero' ha il problema che devi esplicitamente resettare dopo ogni
volta che lo chiami (tipo chiamando keys %hash a vuoto), altrimenti la
prossima volta che usi each sullo stesso hash, dopo questo loop, each
non ricomincia dall'inizio, ma da dove era rimasto (tipicamente, alla
fine).
Marco
Maggiori informazioni sulla lista
FoLUG