Bonjour,

Je souhaite récupérer des valeurs dans un fichier texte séparées par le séparateur ":".
exemple du fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
#MDP123:10.70.138.230
#MDP456:10.70.135.224
Et j'obtiens ce message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
GLOB(0x183f08c)GLOB(0x183f08c)Champ0 = [GLOB(0x183f08c)]
Use of uninitialized value in concatenation (.) or string at gestippass.pl line 19, <$IPPASS> line 1.
Champ1 = []
----------
GLOB(0x183f08c)GLOB(0x183f08c)Champ0 = [GLOB(0x183f08c)]
Use of uninitialized value in concatenation (.) or string at gestippass.pl line 19, <$IPPASS> line 2.
Champ1 = []
----------
Mon code :
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
 
#!..\..\perl\bin\perl.exe
use strict;
use warnings;
use utf8;
print "\n";
my $IPHMCPASS="IP_HMCPASS2.txt";
open (my $IPPASS, "<", $IPHMCPASS) or die print ("Le fichier $IPHMCPASS est introuvable, Erreur : $!\n");
			while (<$IPPASS>) {
			print $IPPASS;
# my $chaine = 'abc123:10.70.138.230#abc1234:10.70.135.224'; 
my @lignes = split (/\#/,$IPPASS);
foreach my $lig (@lignes)
{ 
print $lig;
my @champs = split (/:/,$lig); 
if ($champs[0]) 
{ 
print "Champ0 = [".$champs[0]."]\n"; 
print "Champ1 = [".$champs[1]."]\n"; 
} 
else 
{ 
print "Y a une erreur !\n"; 
} 
print "----------\n"; 
} 
}
Et je comprends pas pourquoi j'obtiens ce résultat.
Pourriez vous m'éclairer un peu ?
Merci d'avance.

Ps : je suis débutant en Perl

Premier correction :
L'idée étant de récupérer la premier ligne séparateur "#"
Puis de traiter les colonnes avec ":"
Mais ça change rien