Use of uninitialized value $_ in pattern match (m//)
Bonjour,
avec le bout de code ci-dessous (je n'ai pas mis la suite inutile pour le sujet), j'ai autant de message "Use of uninitialized value $_ in pattern match (m//)" qu'il y a de ligne lu dans le fichier à lire si je ne rajoute pas dans le code
Code:
no warnings 'uninitialized';
La partie qui cause ce message est le second bloque if.
Même si je met le second bloc if en premier, il génère les mêmes messages.
Code:
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 34 35 36
| use warnings;
use strict;
use Data::Dumper;
#no warnings 'uninitialized';
####################### DEBUT CODE #######################
die "Maximum 1 arguement" if (@ARGV >= 2);
open (my $fh, "<", "$ARGV[0]") or die "Cannot open $!";
my %hash_acl;
my $ip_local_acl_name;
my $acl_name;
my $acl_ligne;
my @ACL_SSH;
while (my $ligne = <$fh>) {
chomp($ligne);
if ($ligne =~ /^ip access-list/) {
$acl_name = $ligne;
}
if ($ligne =~ /^\spermit/i || /^\sdeny/i) {
$acl_ligne = $ligne;
push @{$hash_acl{"$acl_name"}}, $acl_ligne;
}
if ($ligne =~ /^ip local access-list/) {
my $IN_OUT = (split (/ /, $ligne)) [-1];
if ( $IN_OUT =~ /in/) { # Véerefie que l'ACL est en IN
$ip_local_acl_name = (split (/ /, $ligne)) [-2]; # Récupere le nom de l'ACL dans IP LOCAL
} else {
die "PAS ACL EN IN EN IP LOCAL\n";
}
}
} |
C'est un comportement normal?
Merci.