Pb copie de lignes de fichier1 vers fichier2

Clara -  
 Clara -
Bonjour,

Je découvre PERL et je rencontre un problème que je ne parviens pas à résoudre. J'ai un fichier qui contient des infos et je voudrais récupérer certaines infos dans un fichier de sortie. J'arrive à récupérer ces infos mais elles apparaissent plusieurs fois dans mon fichier de sortie. Je ne vois pas d'ou vient mon problème.
Voici mon programme :
#! /usr/bin/perl -w
$fichier = "entree.txt";
$result = "resultat.txt";
$cpt =0;
open (FILE1,"<$fichier ") || die ("Erreur de lecture du fichier en entree , Erreur: $!\n");
open (FILE2,">$result ") || die ("Erreur d'ecriture sur le fichier en sortie , Erreur: $!\n");
$ligne1 = "";
while (<FILE1>){
$ligne1=$_;
if ($ligne1 =~ m/Name:/ ){
$ligne2=$ligne1;
$cpt = 1;
#chop $ligne2;
}
print FILE2 "$ligne2\n";
}
close FILE1;
close FILE2;

Mon fichier resultat.txt m'affiche
Name: MARTIN
Name: MARTIN
Name: MARTIN
alors que mon fichier entree.txt ne contient qu'une ligne correspondante.

Merci pour votre aide.

Clara.
A voir également:

1 réponse

zheimer
 
Bonjour
je ne connais pas PERL, mais $ligne2 n'est jamais reinitialisé, et comme < print FILE2 "$ligne2\n" > n'est pas dans le < if >, il y a systématiquement une écriture dans FILE2 pour chaque ligne de FILE1
0
Clara
 
Bonjour,

Effectivement, cela marche mieux avec le print positionner au bon endroit. Je te remercie.



Clara.
0