Bonjour je dois faire un script pour comparer deux fichiers (fichier1 et fichier 2),
fichier1
ML001 V
ML002 E
ML003 V
fichier 2
ML002 bbb
ML003 ccc
ML009 iii
il doit ressortir un fichier3
ML002 bbb E
ML003 ccc V
ML009 iii
A partir du fichier 2, on doit récupérer l'info contenu dans le fichier 1 (fusion des résultats) et construire ainsi le fichier 3
Je n'arrive pas à définir une deuxième colonne de mon hash genre
#$hash_new {$p} [2] = $hash{$p};
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
30
31
32
33
34
35 my %h = (); open FILE, "fichier2" or die $!; while (my $ligne = <FILE>){ if($ligne =~ /(.*)\t(.*)/){ $h {$1}= $2; } } my %hash = (); open FILE, "fichier1" or die $!; while (my $ligne = <FILE>){ if($ligne =~ /(.*)\t(.*)/){ $hash {$1}= $2; } } my %hash_new = (); foreach my $p (keys %h){ foreach my $t (keys %hash){ if (exists $hash_new{$p}) {#si la clé existe pas next; } $hash_new {$p}= $h{$p};#remplir le hash } } foreach my $u (keys %hash_new){ print "$u\t$hash{$u}\n";#verif }
Partager