Les tableaus à plusieurs dimension en Perl. - Perl - Programmation
Marsh Posté le 05-03-2004 à 13:05:35
Voilà ce que j'ai fait rapidement, ça vaut ce que ça vaut mais ça peut peut être t'aider :
je pars du principe que tes deux tableaux font la même taille.
Soient @v le tableau de virus et @o le tableau des occurences.
CODE :
my $hash;
my $i=0;
foreach(@v) { #ou foreach(@o)
$hash->{"$_"}=@o[$i];
$i++;
}FIN CODE.
Ainsi, ton nom de virus est associé à son nombre d'occurences.
Marsh Posté le 05-03-2004 à 13:09:05
Les tableaux
vous me le copiez 2374 fois dans une boucle while
Marsh Posté le 05-03-2004 à 13:12:22
jeh_ a écrit : Voilà ce que j'ai fait rapidement, ça vaut ce que ça vaut mais ça peut peut être t'aider : |
Ca sens plutot bon ton truc ! Je viens de regarder et apriori c'était bien dans le hashage qu'il fallait que je me dirige ...
Domage j'ai fait des array ...
Y'a plus qu'a comme on dit.
Merci pour la réponse.
Marsh Posté le 05-03-2004 à 13:15:38
uriel a écrit : Les tableaux |
while ($message_author eq "uriel" )
{ delete $message ;
print "Les tableau<X> c'est moins bien que les <i>hash</i>." ;
}
Marsh Posté le 05-03-2004 à 13:17:40
BuzzzzEclair a écrit : |
Marsh Posté le 05-03-2004 à 14:03:02
BuzzzzEclair a écrit : |
J'ai intégré, ca semble pas mal mais j'ai du mal a faire un print du hash.
J'ai un truc dans ce genre pour le print du hash :
Code :
|
Marsh Posté le 05-03-2004 à 14:07:44
Et donc j'ai oblié de dire que le print n'affiche rien pour la vairable $value, alors que dans l'exemple de jeh_ la valeur est bien associée au hash. !
Marsh Posté le 05-03-2004 à 14:14:15
BuzzzzEclair a écrit : Et donc j'ai oblié de dire que le print n'affiche rien pour la vairable $value, alors que dans l'exemple de jeh_ la valeur est bien associée au hash. ! |
Ok j'ai trouvé ... au cas ou ca interesse qqun un jour
Code :
|
Et voila un résultat de sortie du script :
[root@www iscan]# ./report-virus-1.1.pl 2004 03 04
Nombre de virus: 43
WORM_NETSKY.B => 2
WORM_NETSKY.C => 1
WORM_NETSKY.D => 40
Marsh Posté le 06-03-2004 à 07:39:12
Tu as trouvé mais est-ce que tu as compris ? Il te faut un « -> » après le $hash car dans ton programme $hash n'est pas un hash : c'est une référence à un hash. C'est parce que tu l'a initialisé avec en faisant « $hash->{...} = ... » au lieu de « $hash{...} = ... ». Dans le premier cas tu as un $hash et c'est une référence a un hash anonyme. Dans le deuxième cas tu as un %hash et c'est un hash. Comme en C, la flèche permet de déréfencer. C'est juste un « sucre de syntaxe » : « $hash->{...} » est équivalent à « ${%$hash}{...} ».
Et sinon pour être tout a fait complet : « %hash = ("a" => "A" ) » défini un hash. « $hash = {"a" => "A"} » fait « pointer » $hash vers un hash anonyme. « { ... } » est le contructeur de hash anonyme, comme « [ ... ] » est le constructeur de tableau anonyme. Donc : « @array = (1, 2, 3) » mais « $array = [1, 2, 3] ».
Marsh Posté le 08-03-2004 à 10:27:06
matafan a écrit : Tu as trouvé mais est-ce que tu as compris ? Il te faut un « -> » après le $hash car dans ton programme $hash n'est pas un hash : c'est une référence à un hash. C'est parce que tu l'a initialisé avec en faisant « $hash->{...} = ... » au lieu de « $hash{...} = ... ». Dans le premier cas tu as un $hash et c'est une référence a un hash anonyme. Dans le deuxième cas tu as un %hash et c'est un hash. Comme en C, la flèche permet de déréfencer. C'est juste un « sucre de syntaxe » : « $hash->{...} » est équivalent à « ${%$hash}{...} ». |
AH tout s'éclair d'un seul coup! )
J'ai fait du C, donc je connais les structures etc ... ca me fait penser un peu à ca mais j'ai encore du mal à faire la différence entre les différents type en Perl.
Je te remercie beaucoup de m'avoir éclaircis ce point. ;à
Marsh Posté le 05-03-2004 à 11:03:38
Voila je commence tout juste en Perl et je voudrais faire un script qui annalyse les fichiers log de Trend Micro Interscan.
Jusque là tout va bien.
J'ai bien commencé mais il me reste à entrer les données dans un tableau ou il y aurai deux colonnes :
Colone 1 : nom du virus
Colone 2 : nombre d'occurance du virus dans les log
Pour le moment j'ai un tableau avec la liste des virus
et un autre avec les occurances.
Comment faire pour créer un seul tableau à deux dimensions avec les valeurs de mes deux autres tableau?
Le but de la manip est de pouvoir faire des trie par nom de virus ou par nombre d'occurance par la suite.
Je suis peut etre sur la mauvaise piste ... J'ai encore du mal a voir la différence entre les array, les hash ... etc.
Merci d'avoir lu le topic
Régis