Come si sa (almeno per chi programma in perl), gli hash non hanno un ordine proprio, ma gestiscono solo le coppie chiave-valore.
Di recente ho dovuto inserire in un hash un elenco di chiavi (stringhe) con un conteggio come valore (interi), in pratica una tipica classifica estratta con un while parsando file di testo con una regex.
L’input dei dati è quello tipico:
my %hash;
while(<>) {
my $parsato = /^regex$/;
# …
$hash{$parsato}++;
}
while(<>) {
my $parsato = /^regex$/;
# …
$hash{$parsato}++;
}
per ritrovarci con un hash che contiene chiavi (il testo regex’ato) e valori (numerici).
Per riordinarli ho deciso di estrarre un elenco di chiavi secondo un certo criterio (i valori numerici dal più alto al più basso), e poi tagliare i primi X valori che mi interessavano.
Write a comment
You need tologin.