[Perl] Création d'un top 10

Création d'un top 10 [Perl] - Perl - Programmation

Marsh Posté le 14-02-2005 à 10:36:50    

Bonjour, je travaille actuellement sur la création d'un top 10 en perl, sur un fichier de log antivirus d'un serveur de messagerie. Le resultat est ensuite affiché sur une page html.
 
Le probleme c'est que quand je je veux afficher le top 10, ça ne me marque qu'une seul ligne, un peu embetant pour un top 10.
 
voila a quoi ressenble mon fichier de log, les 2 premieres lignes.
 

Code :
  1. mer fév 9 00:04:41 CET 2005 - mer fév 9 00:04:43 CET 2005 :,,from:,laffichiste@yahoo.fr,to :,pnoguet@seei.fr,1,Worm.SomeFool.Gen-1 FOUND
  2. mer fév 9 00:07:35 CET 2005 - mer fév 9 00:07:36 CET 2005 :,,from:,sclosed-recipients@wanadoo.fr,to :,n@mq.getelec.fr,1,Worm.Bagle.AG FOUND


 
voila mon code
 

Code :
  1. foreach $logline4 (@input4)
  2. {
  3.       if ($logline4 =~ /FOUND/)
  4.            {
  5.                       # nombre de virus total
  6.                       $VirusCount++;
  7.                                  
  8.                       # récupération du nom du virus
  9.                        ($date,$time,type,$host,$to,$ab,$bc,$VirusNom) = split (/,/,$logline4);
  10.                        ($VirusName,$found) = split (/ /,$VirusNom);
  11.                
  12.                       # nombre d'occurence par virus
  13.                       $VirusList{$VirusName)++;
  14.        }
  15. }   
  16. $count=1;
  17. foreach $Virus ( sort keys %VirusList ) {
  18.       if ($count < 16) {
  19.          $data_count       = $VirusList{$Virus};
  20.          $data          = $Virus;
  21.          $result_VIRUS .= eval qq/"$htmlVIRUS"/;
  22.          $result_VIRUS   .= "\n";
  23.          print "."   if ($debug > 1);
  24.       }
  25.       $count++;
  26. }


 
Si quelqu'un pourrai m'aider à trouver où ça couince ça serai sympa.
Merci.

Reply

Marsh Posté le 14-02-2005 à 10:36:50   

Reply

Marsh Posté le 14-02-2005 à 11:07:57    

question qui n'a rien à voir avec ton problème : comment tu peux faire un top10 sans faire un tri sur le nbre d'occurence trouvé ?

Reply

Marsh Posté le 14-02-2005 à 11:19:07    

en fait moi j'ai repupéré un script deja existant et je l'ai adapté à mes besoin. Je n'y connais pas grand chose en perl donc c'est pour ça que je vous demande conseil.

Reply

Marsh Posté le 14-02-2005 à 11:20:32    

moi perso je comprends pas tout, il y a des variables dont j'ignore la fonction et une portion de code pas testable

Reply

Marsh Posté le 14-02-2005 à 11:26:39    

j'ignore moi meme certaine variable.
J'ai testé cette portion de code  

Code :
  1. $result_VIRUS .= eval qq/"$htmlVIRUS"/;
  2.          $result_VIRUS   .= "\n";


 
apparement elle sert pas à grand chose.
 
Autre chose, quand je modifie le "count < 16" exemple je met 10, ça me change carement le nom du virus, ça en prend un autre dans le log
 
ce qui marche :
nombre de detection de virus
recupération du nom du virus
nombre d'occurence du virus
 
 
 
 

Reply

Marsh Posté le 14-02-2005 à 11:36:05    

es-tu sûr d'avoir fais un bon copier/coller ?
ligne 9 : manque un "$"
ligne 19 : il faut un "}" à la place du " )"

Reply

Marsh Posté le 14-02-2005 à 11:44:25    

un oublie pour la ligne 9
mais à la ligne 19 je vois pas pourquoi il faut un "}" à la place du " )"

Reply

Marsh Posté le 14-02-2005 à 11:52:19    

ouais bah moi j'abandonne le code est intestable et puis tu ne fais pas l'effort de te pencher sur le perl

Reply

Marsh Posté le 14-02-2005 à 11:57:34    

Ba tanpis, merci quand meme, mais bon ça fait quant meme 1 mois que jsuis dessus, ça me gonfle aussi et ça fait juste 1 mois que je fait du perl aussi.

Reply

Marsh Posté le 14-02-2005 à 12:01:03    

sasame a écrit :

Ba tanpis, merci quand meme, mais bon ça fait quant meme 1 mois que jsuis dessus, ça me gonfle aussi et ça fait juste 1 mois que je fait du perl aussi.


pour le "}" c'est normal : si tu ouvres un "{" il faut le refermer par un "}" et pas par un " )"
je te conseillerai plutôt de refaire la portion de code qui t'intéresse, car ce qui a été fait est difficilement compréhensible (ca ne fait sûrement pas ce que toi tu veux faire)
essai de le refaire par toi-même et si tu as des difficultés exposes les sur le forum

Reply

Marsh Posté le 14-02-2005 à 12:01:03   

Reply

Marsh Posté le 14-02-2005 à 12:11:30    

de toute façon il va faloir que je reface un code parsque celui là est imbuvable.
 
ha ok je vois de quel crochet tu parles, non c juste une erreur de copier collé ça

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed