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
}