next up previous contents
suivant: Annuler les cases dans monter: Les tableaux et les précédent: Utiliser des ensembles de   Table des matières

Conserver un hash trié selon ses clefs

Le hash ne garantie rien en ce qui concerne l'ordre dans le quel il va retourner les données. On peut le trier au moment ou l'on va ressortir les données. Le module tie::SortHash a une autre approche du problème : il permet de garder la table triée à tous moment.

use Tie::SortHash;

my %alpha;
my %number;

tie(%alpha,'Tie::SortHash') or die $!;
tie(%number,'Tie::SortHash') or die $!;

%alpha = (      'xavier' => 1,
                'jean' => 1,
                'annie' => 1);

%number = (
                1 => 'un',
                3 => 'trois',
                2 => 'deux');

while(my($key,$value) = each(%alpha)) {
        print "$key => $value\n";
}

while(my($key,$value) = each(%number)) {
        print "$key => $value\n";
}



2006-03-15