Une erreur de "uninitialized value in concatenation" que je ne comprends pas.
Bonjour,
Je souhaite récupérer des valeurs dans un fichier texte séparées par le séparateur ":".
exemple du fichier :
Code:
1 2 3
|
#MDP123:10.70.138.230
#MDP456:10.70.135.224 |
Et j'obtiens ce message d'erreur :
Code:
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:
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 :(