Hello tout le monde !!
Je fais appel à vous car je ne connais strictement rien en PERL et que je dois modifier un script écrit en perl.
Je vous explique...
Mon but est de récupérer des valeurs via SNMP (ça c'est ok), ces valeurs sont des chiffres, ensuite je la compare à une autre (et c'est là que je merde !).
Ces valeurs sont des numéros de port de switch réseau. J'ai déjà testé avec des Print et je récupérè bien tout ce qu'il faut mais je n'arrive pas à faire ma comparaison.
Je sais que ça doit être un truc tout bête mais je suis un peu perdu dans ce langage
Voici le bout de code :
Quand je lance mon script j'obtiens le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #=== Get Alias ==== my $result2 = $session->get_table( -baseoid => $mib{"ifalias"}, ); my $key2; my $value2; my @AdminShut; while (($key2, $value2) = each %{$result2}){ my @split2=split(/\./,$key2); $key2 = $split2[-1]; if ($value2 =~ /##/ and $key2 < $opt_N){ print($key2); # -- Jaffiche ma valeur push(@AdminShut,$key2); # -- jexporte dans un tableau } } #=== Get list of switch id in the stack ==== my $result = $session->get_table( -baseoid => $mib{"ifacestatus"}, ); my $key; my $value; my $countdown=0; my @down; while (($key, $value) = each %{$result}){ my @split=split(/\./,$key); $key = $split[-1]; if ($value == 2 and $key != $key2){ # -- je compare key a key2 ----- source du probleme !! &debug("Interface $key is administratively down\r\n",$value); $countdown++; push(@down,$key); } }
Use of uninitialized value in numeric eq (==) at ./bak-check_port_shutdowned.pl line 176.
Use of uninitialized value in numeric eq (==) at ./bak-check_port_shutdowned.pl line 176.
La ligne 176 correspond à :
Dans $key2 et $key il n'y a que des valeurs numériques normalement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if ($value == 2 and $key != $key2){ # -- je compare key a key2 ----- source du probleme !!
Dans mon exemple $key2 contient le chiffre 4 et 5 et $key les chiffres allant de 1 à 200.
Je vous remercie pour votre aide !
A+
Partager