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.

9 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    ello
    essayer @ARGV ="C:\\script\\Etiq.txt"; ou @ARGV ="C:/script/Etiq.txt";
    1
    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
    2. 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
    3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      ça ne serait pas
      while (ligne = <>) {
      sans le "$" ?
      0
  2. najia87 Messages postés 44 Statut Membre 3
     
    c est qlq un peut me donner une reponse stp c est urgent
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    enlever le ; à la fin de la ligne : #!/usr/bin/perl;
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    $ ./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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. najia87 Messages postés 44 Statut Membre 3
     
    merci bcp Dubcek mais encore ca marche pas :s:s
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    as-tu corrigé cette ligne ?
    ($pre,$nom,$ville,$pays) = split(/ /,$ligne); 
    0
  8. najia87 Messages postés 44 Statut Membre 3
     
    mais c est le meme que j ai ecrit dés le début!!!!
    0
  9. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    non, dans le premier post, il y a : ($pre,$nom,$ville,$pays) = split(/ /,$l);
    0
  10. 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