[Perl] Question sur les tris (sort) [Résolu/Fermé]

Signaler
Messages postés
437
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
-
Messages postés
437
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
-
Bonjour,

Je suis confronté à un problème tout bête, mais ennuyeux
Je cherche à faire un sort ...

while (<XML>) {   
    $XMLhash{$i}   
    $i++;   
}   
foreach my $key ( sort keys %XMLhash ) {   
    print $key;   
}

J'ai une liste "mal" triée en retour ...
0 1 10 100 1000 1001 1002 [...]

Comment puis-je faire pour avoir un "vrai" tri de ce type ?
0 1 2 3 [...] 10 11 [...] 100

Si vous avez votre réponse, pensez à spécifier : [Résolu]

2 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 532
Salut,

foreach my $key ( sort { $a <=> $b }keys %XMLhash )


GNU/Linux:Linux is Not Ubuntu! Quel linux choisir ne veut pas dire votre Distribution préférée,
106485010510997108
Messages postés
437
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
82
Merci !

J'avais du mal à "googler" mon besoin pour trouver ce petit opérateur 'vaisseau spatial'
Au vu du nom, je ne risque pas de l'oublier, tout comme le joli 'opérateur diamant' :)
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 532
Salut,

J'avais du mal à "googler" mon besoin

Puisque ce besoin il faut le traduire avec les bons mots clés ;-)
Par exemple tri numérique en perl

En fait sort par défaut fait un tri asciibéthique (voir aussi l'opérateur explicite cmp) et tu avais besoin d'un tris numérique.

Tu sais d'où viens le nom de l'opérateur diamant? ;-)
Messages postés
437
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
13 septembre 2013
82
Pour l'opérateur diamant, je suppose que c'est pour sa forme ? ^^