Bonjour,
Je souhaite récupérer des valeurs dans un fichier texte séparées par le séparateur ":".
exemple du fichier :
Et j'obtiens ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #MDP123:10.70.138.230 #MDP456:10.70.135.224
Mon code :
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 = [] ----------
Et je comprends pas pourquoi j'obtiens ce résultat.
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"; } }
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
Partager