Langage perl

Fermé
najia87 - 4 avril 2012 à 17:00
najia87 Messages postés 43 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 14 mai 2012 - 8 avril 2012 à 22:22
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 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
5 avril 2012 à 07:49
ello
essayer @ARGV ="C:\\script\\Etiq.txt"; ou @ARGV ="C:/script/Etiq.txt";
1
najia87 Messages postés 43 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 14 mai 2012 3
Modifié par najia87 le 5/04/2012 à 23:07
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 43 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 14 mai 2012 3
Modifié par najia87 le 5/04/2012 à 23:09
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 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
6 avril 2012 à 09:38
ça ne serait pas
while (ligne = <>) {
sans le "$" ?
0
najia87 Messages postés 43 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 14 mai 2012 3
4 avril 2012 à 21:44
c est qlq un peut me donner une reponse stp c est urgent
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
6 avril 2012 à 09:59
enlever le ; à la fin de la ligne : #!/usr/bin/perl;
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
6 avril 2012 à 12:49
$ ./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 43 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 14 mai 2012 3
6 avril 2012 à 22:27
merci bcp Dubcek mais encore ca marche pas :s:s
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
7 avril 2012 à 09:16
as-tu corrigé cette ligne ?
($pre,$nom,$ville,$pays) = split(/ /,$ligne); 
0
najia87 Messages postés 43 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 14 mai 2012 3
7 avril 2012 à 23:15
mais c est le meme que j ai ecrit dés le début!!!!
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
8 avril 2012 à 08:49
non, dans le premier post, il y a : ($pre,$nom,$ville,$pays) = split(/ /,$l);
0
najia87 Messages postés 43 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 14 mai 2012 3
8 avril 2012 à 22:22
oui oui j ai mis ($pre,$nom,$ville,$pays) = split(/ /,$ligne);
mais ca marche po je ne sais po pourquoi
0