Langage perl

najia87 -  
najia87 Messages postés 44 Statut Membre -
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.
A voir également:

9 réponses

dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
ello
essayer @ARGV ="C:\\script\\Etiq.txt"; ou @ARGV ="C:/script/Etiq.txt";
1
najia87 Messages postés 44 Statut Membre 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.
0
najia87 Messages postés 44 Statut Membre 3
 
j ai besoin de votre aide svp c' est qlq un peux me donner une solution que je dois faire??
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
ça ne serait pas
while (ligne = <>) {
sans le "$" ?
0
najia87 Messages postés 44 Statut Membre 3
 
c est qlq un peut me donner une reponse stp c est urgent
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
enlever le ; à la fin de la ligne : #!/usr/bin/perl;
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
$ ./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
+----------------------------+ 
.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
najia87 Messages postés 44 Statut Membre 3
 
merci bcp Dubcek mais encore ca marche pas :s:s
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
as-tu corrigé cette ligne ?
($pre,$nom,$ville,$pays) = split(/ /,$ligne); 
0
najia87 Messages postés 44 Statut Membre 3
 
mais c est le meme que j ai ecrit dés le début!!!!
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
non, dans le premier post, il y a : ($pre,$nom,$ville,$pays) = split(/ /,$l);
0
najia87 Messages postés 44 Statut Membre 3
 
oui oui j ai mis ($pre,$nom,$ville,$pays) = split(/ /,$ligne);
mais ca marche po je ne sais po pourquoi
0