|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : octobre 2007 Messages : 165 ![]() |
Bonjour,
Je n'arrive toujours pas à faire des tris dans les tableau ![]() Voici une script qui utilise la fonction CPAN Proc: Code :
user 2388 13654 0 0 39 48 user 2388 13659 0 0 39 46 user 2388 13660 0 0 39 45 user 2388 13662 0 0 39 40 user 2388 13666 0 0 39 36 J'aimerais que le processus le plus jeunes apparaisse en premier. J'ai essayé la fonction sort de différente manière avec cette fonction par exemple : Code :
Can't use string ("user) as an ARRAY ref while "strict refs" in use at ./Monitor_Chrome.pl line 27. Merci de votre aide. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre régulier
![]() Inscription : mai 2002 Messages : 105 ![]() |
Dans ton essai, tu appliques sort sur une ligne, pas sur le tableau complet. C'est pour ca que quand tu fais $$a[2], le $a contient la valeur du premier champ de la ligne en cours. Su coup perl essaye d'utiliser $a comme une reference symbolique mais use strict l'en empeche.
Toi tu t'attends a comparer 2 lignes entre elles donc tu devrait d'abord stocker chaque @tab dans un tableau et ensuite appliquer sort sur le tableau final. Quelque chose comme ca: Code :
__________________
In code we trust !! |
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : octobre 2007 Messages : 165 ![]() |
Merci Evilvo .....
C'est dans l'idée mais je n'avais pas la bonne syntaxe. J'avais essayé la commande pus mais mal écrite me donnais une erreur. Petit point qui demande eclairsissement : Code :
print join qq/\n/, map {join qq/\t/, @$_} D'avance Merci ..... |
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Inscription : avril 2004 Messages : 13 545 ![]() |
Pas testé :
Code :
__________________
|
||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : mai 2002 Messages : 105 ![]() |
Desole j'aurai du separer la ligne en plusieurs commandes pour que ce soit plus clair
En fait ca fonctionne comme ca: - sort {$a->[2] <=> $b->[2]} @tab; retourne une array triee selon l'expression entre {}. - map {join qq/\t/, @$_} prends l'array cree par sort et execute les operations entre {} pour chaque element de l'array et retourne une array. Dans notre cas chaque element est en fait une reference sure une array, donc map initialise $_ avec ca a l'entre du bloc. Comme join prends une array en plus du separateur comme argument donc on doit caster $_ (ARRAYREF) en array d'ou @$_. - join qq/\n/, : prends l'array retournee par map et concatene chaque element en separant par des newlines afin que print ait une belle chaine toute propre.
__________________
In code we trust !! |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com