[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