Langage perl [Fermé]

Signaler
-
Messages postés
43
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
14 mai 2012
-
Bonjour,



bonjour je travaille sous Windows avec le langage perl , mon problème est de transformer un fichier à un format spécifique voila mon code:
#!/usr/bin/perl;
@ARGV ="C:\script\Etiq.txt";
$~="ETIQUETTE";
while ($ligne = <>) {
chop ($ligne);
($pre,$nom,$ville,$pays) = split(/ /,$l);
write;
}

format ETIQUETTE =
+----------------------------+
| @<<<<<<<<<<<<<<<<<<<<< |
$pre
| @<<<<<<<<<<<<<<<<<<<<< |
$nom
| @||||||||||||||||||||| |
$ville
| @>>>>>>>>>>>>>>>>>>>>> |
$pays
+----------------------------+
.

il m affiche cette erreur : le fichier Etiq .txt ne s'ouvre pas et je ne sais po pourquoi malgré que l emplacement du fichier est correcte. merci pour votre aide.

9 réponses

Messages postés
18241
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
31 mai 2021
5 302
ello
essayer @ARGV ="C:\\script\\Etiq.txt"; ou @ARGV ="C:/script/Etiq.txt";
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
43
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
14 mai 2012
3
j ai mis le fichier ds C seuelment c:\ etiq.txt mais le probleme qu il m a donnée un autre probleme c est :
Global symbol "$ligne" requires explicit package name at c:\script\format.pl lin
e 6.
Global symbol "$ligne" requires explicit package name at c:\script\format.pl lin
e 7.
Global symbol "$pre" requires explicit package name at c:\script\format.pl line
8.
Global symbol "$nom" requires explicit package name at c:\script\format.pl line
8.
Global symbol "$ville" requires explicit package name at c:\script\format.pl lin
e 8.
Global symbol "$pays" requires explicit package name at c:\script\format.pl line
8.
Global symbol "$l" requires explicit package name at c:\script\format.pl line 8.

Global symbol "$pre" requires explicit package name at c:\script\format.pl line
15.
Global symbol "$nom" requires explicit package name at c:\script\format.pl line
17.
Global symbol "$ville" requires explicit package name at c:\script\format.pl lin
e 19.
Global symbol "$pays" requires explicit package name at c:\script\format.pl line
21.
Execution of c:\script\format.pl aborted due to compilation errors.
Messages postés
43
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
14 mai 2012
3
j ai besoin de votre aide svp c' est qlq un peux me donner une solution que je dois faire??
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 289
ça ne serait pas
while (ligne = <>) {
sans le "$" ?
Messages postés
43
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
14 mai 2012
3
c est qlq un peut me donner une reponse stp c est urgent
Messages postés
18241
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
31 mai 2021
5 302
enlever le ; à la fin de la ligne : #!/usr/bin/perl;
Messages postés
18241
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
31 mai 2021
5 302
$ ./p4
+----------------------------+
| Nom                    |
| Prenom                 |
|         Ville          |
|                   Pays |
+----------------------------+
$ 
$ cat Etiq.txt
Nom Prenom Ville Pays
$ 
$ cat p4
#!/usr/bin/perl
@ARGV ="Etiq.txt";
$~="ETIQUETTE";
while ($ligne = <>) {
chop ($ligne);
($pre,$nom,$ville,$pays) = split(/ /,$ligne);
write;
}

format ETIQUETTE =
+----------------------------+
| @<<<<<<<<<<<<<<<<<<<<< |
$pre
| @<<<<<<<<<<<<<<<<<<<<< |
$nom
| @||||||||||||||||||||| |
$ville
| @>>>>>>>>>>>>>>>>>>>>> |
$pays
+----------------------------+ 
.
Messages postés
43
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
14 mai 2012
3
merci bcp Dubcek mais encore ca marche pas :s:s
Messages postés
18241
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
31 mai 2021
5 302
as-tu corrigé cette ligne ?
($pre,$nom,$ville,$pays) = split(/ /,$ligne); 
Messages postés
43
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
14 mai 2012
3
mais c est le meme que j ai ecrit dés le début!!!!
Messages postés
18241
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
31 mai 2021
5 302
non, dans le premier post, il y a : ($pre,$nom,$ville,$pays) = split(/ /,$l);
Messages postés
43
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
14 mai 2012
3
oui oui j ai mis ($pre,$nom,$ville,$pays) = split(/ /,$ligne);
mais ca marche po je ne sais po pourquoi