Bonjour,

J'ai un souci de compréhension. J'ai deux fichiers identiques. Je veux les comparer des deux sens. Si chaque ligne ds fic1 existe elle bien ds fic2 et le sens inverse.

Mon programme d'un sens il marche très bien ( en utilisant biensur '=~'). Et quand je fais la même procédure de comparaison dans le sens inverse ça ne marche pas. Et pourtant j'utilse les chomp des deux côtés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
 
sub compare_fic1_fic2 {
open (F, "a.txt");
my $ok = 0;
while($ligne1 = <F>){
my $test = 0;
chomp($ligne1);
my $li = $ligne1; 
open (X, ,"$b.txt");
     while($ligne2 = <X>){
     chomp($ligne2);
     $ligne2 =~ s/\[(\d+)\]/\1/;   # J'enlève les crochets pour comparer car 
     $ligne1 =~ s/\[(\d+)\]/\1/;    # avec crochets la comparaison ne pass pas
     if ($ligne1 =~ /$ligne2/){
     $test = 1;
     }
     }
close X;
if($test == 0) {
print "ERROR: $li (fic1) ne se trouve pas dans (fic2)\n\n";
 $ok = 1;
}
}
if($ok == 0){
print "pas d'erreur \n\n";
}
close F;
}
Et quand je fais l'operation inverse donc :

compare_fic2_fic1 avec le même bloc j'échange juste les noms des fichiers , la comparaison ne marche pas. et ça me donen toujours :
la ligne ds fic2 n'existe pas dans fic1.

Peut être quelque chose de futil m'échappe...Merci