Sort sur un élément distinct
Bonjour.
Voici un bout de code:
open (FHgetPrbValue,"rawdata.txt")
@tDescriptionComplete=<FHgetPrbValue>;
@tDescriptionComplete = sort(@tDescriptionComplete);
foreach (@tDescriptionComplete ) {
print "_\n";
}
Ici @tDescriptionComplete comprend plusieurs colonne dont le séparateur est ¦
Le résultat dans print "_\n"; sort sur le premier élément.
Je cherche à faire un sort sur cette liste mais avec le 19 ième élément.
Merci de votre aide.
fortuel.
Re: Sort sur un élément distinct
Bonjour, et bienvenue sur les forums Perl ;)
Citation:
Envoyé par Martin lalande
Voici un bout de code:
Tout d'abord, pour les portions de code, je te recommande l'usage des balises [ code ] et [ /code ] (à taper au début et à la fin de ton code, sans les blancs dans les crochets). Elles permettent une meilleure lisibilité des forums.
Tu peux éditer ton post pour les ajouter, cela facilitera la suite.
Citation:
Envoyé par Martin lalande
...
Ici @tDescriptionComplete comprend plusieurs colonne dont le séparateur est ¦
Le résultat dans print "_\n"; sort sur le premier élément.
Je cherche à faire un sort sur cette liste mais avec le 19 ième élément.
La fonction sort peut recevoir un bloc de code qui lui indique comment trier.
En voici un exemple qui trie sur la cinquième valeur (d'indice 4) un tableau similaire au tien :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #!/usr/bin/perl
use warnings;
use strict;
my @tab = ('zrze|dfged|dsfd|sdfd|sdfs',
'453|345|463|35435|3242',
'ferfe|zezr|sfdz|feez|aaaa');
my @new_tab = sort { my @ta = split (/|/, $a); my @tb = split (/|/, $b); $ta[4] cmp $tb[4] } @tab;
foreach (@new_tab) {
print "$_\n";
} |
La partie importante est entre les accolades du sort.
Bon courage.