gilou Modérateur Modosaurus Rex | J'ai pas testé, mais a l'oeil nu, il y a trois erreurs:
   Erreur pas grave mais qui va tout mettre sur une ligne
 print  MONFICHIER2 "$i $ligne/n";   c'est \n et non pas/n
 erreur qui se répète avec MONFICHIER3     Erreur du copier-coller pas relu
 open(MONFICHIER3,">/Translated/English.txt" );   $i=0;   while($ligne =<MONFICHIER> ){   chomp($ligne);   if ($ligne=~/FRENCH/){   $i++;   print  MONFICHIER3 "$i $ligne/n";   }   }   c'est if ($ligne=~/ENGLISH/){     Et l'erreur la plus grave:
 quand on a lu une première fois MONFICHIER, il faut revenir au début avant de le relire une seconde fois.
 print" le nombre de lignes en français est $i";   open(MONFICHIER3,">/Translated/English.txt" );
 ça devrait être
 print" le nombre de lignes en français est $i";   seek(MONFICHIER, 0, SEEK_SET);
 open(MONFICHIER3,">/Translated/English.txt" );
   Et un truc qui n'est pas une erreur, mais sans doute un oubli:
 print" le nombre de lignes en français est $i";   ce serait mieux comme
 print" le nombre de lignes en français est $i\n";     A part ça, le reste devrait tenir la route.
   Une dernière remarque:
 faire   chomp($ligne); ou on vire le \n de la fin
 puis
 print  MONFICHIER3 "$i $ligne/n";  ou on rajoute le \n supprimé
 c'est du boulot inutile
 while($ligne =<MONFICHIER> ){   if ($ligne=~/FRENCH/){   $i++;   print  MONFICHIER3 "$i $ligne";   }   }   ça fait la même chose avec une ligne de moins.
  
  Citation :
 
 Je sais que mon code est bien " primaire ", sans doute risible à vos yeux...
   |  
 La philosophie de perl, c'est que l'essentiel, c'est de pouvoir coder quelque chose qui soit une solution a son problème. Il n'y a pas LA solution a un pb en perl, mais tout un tas de solutions, selon son niveau, et qu'aucune n'est "risible", tant qu'elle marche.
   Bon, j'aurais sans doute écrit ceci ainsi:
  Code :
 #!/usr/bin/perl use strict; use warnings; use autodie;     my ($infile, $outfile, $cnt); open $infile,  "<",  '/Translated/Bilingual.txt';    $cnt = 0; open $outfile,  ">",  '/Translated/French.txt';  while (<$infile> ) {   print $outfile ++ $cnt,  " $_" if (/FRENCH/ );  } print " Le nombre de lignes en français est $cnt\n";    seek($infile,  0, SEEK_SET );    $cnt = 0; open $outfile,  ">",  '/Translated/English.txt';  while (<$infile> ) {   print $outfile ++ $cnt,  " $_" if (/ENGLISH/ );  } print " Le nombre de lignes en anglais est $cnt\n";    
 
  |  
 
     A+,    Message édité par gilou le 11-06-2013 à 22:44:45  ---------------
			 There's more than what can be linked! --  Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻
    |