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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
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.