Langage perl

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

  1. oui oui j ai mis ($pre,$nom,$ville,$pays) = split(/ /,$ligne);
    mais ca marche po je ne sais po pourquoi
    1. Contributeur
      non, dans le premier post, il y a : ($pre,$nom,$ville,$pays) = split(/ /,$l);
      1. Contributeur
        as-tu corrigé cette ligne ?
        ($pre,$nom,$ville,$pays) = split(/ /,$ligne); 
        1. Contributeur
          $ ./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
          +----------------------------+ 
          .
          
          1. Contributeur
            enlever le ; à la fin de la ligne : #!/usr/bin/perl;
            1. Contributeur
              ello
              essayer @ARGV ="C:\\script\\Etiq.txt"; ou @ARGV ="C:/script/Etiq.txt";
              1. 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.
              2. j ai besoin de votre aide svp c' est qlq un peux me donner une solution que je dois faire??
              3. Contributeur
                ça ne serait pas
                while (ligne = <>) {
                sans le "$" ?