foreach my $source ( keys %infos ) {
print "De $source vers :\n";
foreach my $i ( 0 .. $#{$infos{$source} } ) {
print " $infos{$source}[$i]\n";
}
print "\n\n";
}
ca marche 'presque' bien. mon problème, c'est que ne voudrait pas qu'il
y ai plusieurs fois la même adresse ip destination. donc pouvoir pousser
dans le hash l'adresse ip que si elle n'existe pas.
pour le moment cela donne :
De 192.168.110.66 vers :
239.255.255.250
239.255.255.250
239.255.255.251
239.255.255.251
239.255.255.250
239.255.255.250
239.255.255.250
239.255.255.252
239.255.255.252
239.255.255.250
...
je voudrais :
De 192.168.110.66 vers :
239.255.255.250
239.255.255.251
239.255.255.251
239.255.255.252
il y a une astuce pour le 'push' ou bien il faut tester à chaque fois
avant d'insérer ?
foreach my $source ( keys %infos ) { print "De $source vers :n"; foreach my $i ( 0 .. $#{$infos{$source} } ) { print " $infos{$source}[$i]n"; } print "nn"; }
ca marche 'presque' bien. mon problème, c'est que ne voudrait pas qu'il y ai plusieurs fois la même adresse ip destination. donc pouvoir pousser dans le hash l'adresse ip que si elle n'existe pas.
pour le moment cela donne :
De 192.168.110.66 vers : 239.255.255.250 239.255.255.250 239.255.255.251 239.255.255.251 239.255.255.250 239.255.255.250 239.255.255.250 239.255.255.252 239.255.255.252 239.255.255.250 ...
je voudrais : De 192.168.110.66 vers : 239.255.255.250 239.255.255.251 239.255.255.251 239.255.255.252
il y a une astuce pour le 'push' ou bien il faut tester à chaque fois avant d'insérer ?
On peut rajouter un hash (%ds) avec comme clé la concaténation des adresses source et destination ( en intercalant un caractère neutre pour les séparer).
foreach my $source ( keys %infos ) { print "De $source vers :n";
foreach my $i ( 0 .. $#{$infos{$source} } ) { print "
$infos{$source}[$i]n"; } print "nn"; }
ca marche 'presque' bien. mon problème, c'est que ne voudrait pas
qu'il y ai plusieurs fois la même adresse ip destination. donc
pouvoir pousser dans le hash l'adresse ip que si elle n'existe pas.
pour le moment cela donne :
De 192.168.110.66 vers : 239.255.255.250 239.255.255.250
239.255.255.251 239.255.255.251 239.255.255.250 239.255.255.250
239.255.255.250 239.255.255.252 239.255.255.252 239.255.255.250 ...
je voudrais : De 192.168.110.66 vers : 239.255.255.250
239.255.255.251 239.255.255.251 239.255.255.252
il y a une astuce pour le 'push' ou bien il faut tester à chaque fois
avant d'insérer ?
On peut rajouter un hash (%ds) avec comme clé la concaténation des
adresses source et destination ( en intercalant un caractère neutre pour
les séparer).
foreach my $source ( keys %infos ) { print "De $source vers :n"; foreach my $i ( 0 .. $#{$infos{$source} } ) { print " $infos{$source}[$i]n"; } print "nn"; }
ca marche 'presque' bien. mon problème, c'est que ne voudrait pas qu'il y ai plusieurs fois la même adresse ip destination. donc pouvoir pousser dans le hash l'adresse ip que si elle n'existe pas.
pour le moment cela donne :
De 192.168.110.66 vers : 239.255.255.250 239.255.255.250 239.255.255.251 239.255.255.251 239.255.255.250 239.255.255.250 239.255.255.250 239.255.255.252 239.255.255.252 239.255.255.250 ...
je voudrais : De 192.168.110.66 vers : 239.255.255.250 239.255.255.251 239.255.255.251 239.255.255.252
il y a une astuce pour le 'push' ou bien il faut tester à chaque fois avant d'insérer ?
On peut rajouter un hash (%ds) avec comme clé la concaténation des adresses source et destination ( en intercalant un caractère neutre pour les séparer).
unless ( defined $ds{$1.'-'.$2} ) { push @{ $infos{$1} }, $2; $ds{$1.'-'.$2} = 1; } } close LOGFILE;
HTH
-- J-L http://www.bribes.org/perl
kurtz le pirate
Le 16/04/2014 20:29, Jean-Louis Morel a écrit :
Le 16/04/2014 19:18, kurtz le pirate a écrit :
bonjour,
snip
On peut rajouter un hash (%ds) avec comme clé la concaténation des adresses source et destination ( en intercalant un caractère neutre pour les séparer).
un autre hash juste pour les doublons... ingénieux ça. merci
-- Kurtz le pirate Compagnie de la Banquise
Le 16/04/2014 20:29, Jean-Louis Morel a écrit :
Le 16/04/2014 19:18, kurtz le pirate a écrit :
bonjour,
snip
On peut rajouter un hash (%ds) avec comme clé la concaténation des
adresses source et destination ( en intercalant un caractère neutre pour
les séparer).
un autre hash juste pour les doublons... ingénieux ça.
merci
On peut rajouter un hash (%ds) avec comme clé la concaténation des adresses source et destination ( en intercalant un caractère neutre pour les séparer).
un autre hash juste pour les doublons... ingénieux ça. merci
-- Kurtz le pirate Compagnie de la Banquise
Nicolas George
Jean-Louis Morel , dans le message <534ecbeb$0$2388$, a écrit :
On peut rajouter un hash (%ds) avec comme clé la concaténation des adresses source et destination ( en intercalant un caractère neutre pour les séparer).
Si on veut pouvoir accéder aux adresses de manière un peu structurée, par exemple trouver toutes les deuxièmes adresses associées à chaque première adresse, on peut préférer faire un hash de hash plutôt que concaténer les chaînes.
Jean-Louis Morel , dans le message
<534ecbeb$0$2388$426a74cc@news.free.fr>, a écrit :
On peut rajouter un hash (%ds) avec comme clé la concaténation des
adresses source et destination ( en intercalant un caractère neutre pour
les séparer).
Si on veut pouvoir accéder aux adresses de manière un peu structurée, par
exemple trouver toutes les deuxièmes adresses associées à chaque première
adresse, on peut préférer faire un hash de hash plutôt que concaténer les
chaînes.
Jean-Louis Morel , dans le message <534ecbeb$0$2388$, a écrit :
On peut rajouter un hash (%ds) avec comme clé la concaténation des adresses source et destination ( en intercalant un caractère neutre pour les séparer).
Si on veut pouvoir accéder aux adresses de manière un peu structurée, par exemple trouver toutes les deuxièmes adresses associées à chaque première adresse, on peut préférer faire un hash de hash plutôt que concaténer les chaînes.