OVH Cloud OVH Cloud

Hachages à tout va...

2 réponses
Avatar
Dee
Bonjour à tous,

j'ai un script qui parse des fichiers texte contenant des statistiques de
basket (points, passes, contres, etc.).
Je mets ces données dans un hachage genre :
$stats{Dupont}{Points} = 25;
$stats{Durand}{Points} = 10;
$stats{Martin}{Points} = 5;
...
$stats{Dupont}{Passes} = 2;
$stats{Durand}{Passes} = 8;
$stats{Martin}{Passes} = 4;
...
$stats{Dupont}{Contres} = 2;
$stats{Durand}{Contres} = 0;
$stats{Martin}{Contres} = 0;

Ensuite je souhaite trier les classement des meilleurs joueurs dans chaque
catégorie (Points, Passes et Contres dans l'exemple).
Le problème est que je n'ai pas trouvé comment trier des "sous-hachages".

Si quelqu'un peut me débloquer, cela fera plaisir à tout ceux qui souhaitent
consulter mes futurs classements.

Merci d'avance,

Dee - bien meilleur au basket qu'en Perl ;-)

2 réponses

Avatar
Paul GABORIT
À (at) Tue, 4 Nov 2003 19:15:24 -0000,
"Dee" écrivait (wrote):
j'ai un script qui parse des fichiers texte contenant des statistiques de
basket (points, passes, contres, etc.).
Je mets ces données dans un hachage genre :
$stats{Dupont}{Points} = 25;
$stats{Durand}{Points} = 10;
$stats{Martin}{Points} = 5;
...
$stats{Dupont}{Passes} = 2;
$stats{Durand}{Passes} = 8;
$stats{Martin}{Passes} = 4;
...
$stats{Dupont}{Contres} = 2;
$stats{Durand}{Contres} = 0;
$stats{Martin}{Contres} = 0;

Ensuite je souhaite trier les classement des meilleurs joueurs dans chaque
catégorie (Points, Passes et Contres dans l'exemple).
Le problème est que je n'ai pas trouvé comment trier des "sous-hachages".


Un truc du genre :

my @passeurs sort {
$stats{$a}{Passes} <=> $stats{$b}{Passes}
} keys %stats;

Le tableau @passeurs contient alors les noms des joueurs classés (par ordre
ascendant de la valeur du champs 'Passes').

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>

Avatar
Dee
Mais c'est bien sûr !

Pourquoi faire simple quand on peut faire compliqué ?

Merci beaucou monsieur Paul :o)

Dee.

"Paul GABORIT" a écrit dans le message de
news:

À (at) Tue, 4 Nov 2003 19:15:24 -0000,
"Dee" écrivait (wrote):
j'ai un script qui parse des fichiers texte contenant des statistiques
de


basket (points, passes, contres, etc.).
Je mets ces données dans un hachage genre :
$stats{Dupont}{Points} = 25;
$stats{Durand}{Points} = 10;
$stats{Martin}{Points} = 5;
...
$stats{Dupont}{Passes} = 2;
$stats{Durand}{Passes} = 8;
$stats{Martin}{Passes} = 4;
...
$stats{Dupont}{Contres} = 2;
$stats{Durand}{Contres} = 0;
$stats{Martin}{Contres} = 0;

Ensuite je souhaite trier les classement des meilleurs joueurs dans
chaque


catégorie (Points, Passes et Contres dans l'exemple).
Le problème est que je n'ai pas trouvé comment trier des
"sous-hachages".



Un truc du genre :

my @passeurs > sort {
$stats{$a}{Passes} <=> $stats{$b}{Passes}
} keys %stats;

Le tableau @passeurs contient alors les noms des joueurs classés (par
ordre

ascendant de la valeur du champs 'Passes').

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>