indietro

  • values HASH

    Restituisce una lista contenente tutti i valori dell'hash passato come parametro. (In contesto scalare, restituisce il numero di valori).

    I valori sono restituiti in un ordine apparentemente casuale. Tale ordine casuale saràs oggetto a cambiamenti nelle future versioni di perl, ma è garantito essere lo stesso ordine che producono le funzioni keys e each sullo stesso (non modificato) hash. Per ragioni di sicurezza, a partire dal Perl 5.8.1 l'ordinamento è differente anche tra diverse esecuzioni di Perl (consultate perlsec/"Algorithmic Complexity Attacks" ["Attacchi di Complessità Algoritmica", NdT]).

    Come effetto collaterale, la chiamata a values() reimposta l'iteratore interno dell'HASH, si veda each. (In particolare, una chiamata a values() in un contesto vuoto, reimposta l'iteratore senza alcun costo computazionale aggiuntivo).

    Va notato che i valori non vengono copiati, il che significa che modificare essi modifica i contenuti dell'hash:

        for (values %hash)      { s/pippo/pluto/g }   # modifica i valori di %hash
        for (@hash{keys %hash}) { s/pippo/pluto/g }   # stessa cosa

    Consultate anche keys, each e sort.