Bonjour,
suite à un problème technique ma contribution a été supprimée donc tout est perdu et désolé pour les personnes ayant contribuées aux réponses surtout Jasmine80.
biensur j'ai pas copié les réponses et les explications de Jasmine80.
je réexplique donc si vous voulez bien de nouveau m'aider.

je dois à partir de 2 fichiers (pour le moment ou plus) sortir un fichier txt avec une synthese. ces fichiers contiennent des adresses mails , 1 par ligne avec un chiffre, par exemple dans le fichier test1.txt
toto@toto.com 5
tutu@tutu.com 2
titi@titi.com 1
dans le fichier test2.txt
toto@toto.com 5
tutu@tutu.com 3
l'objectif est d'avoir un fichier résultat avec:
toto@toto.com 10
tutu@tutu.com 5
titi@titi.com 1
hors mon script actuelle ne me donne pas ce résultat et c'est là que j'ai difficulté car encore très débutant, j'obtient dans mon fichier résultat
toto@toto.com 5
toto@toto.com 5
tutu@tutu.com 2
tutu@tutu.com 3
titi@titi.com 1
mais pas la synthese
voici mon code
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
#!c:/perl/perl.exe 
package test;
#use warnings;
 
my %hashTemp;
my $fic;
my $rep="d:/test/";
my $res="testresult.txt";
 
getFiles($rep,\@fichiers);
 
open F_ECRIRE,">$rep/$res"  or die "E/S : $!\n";
 
foreach $fic(@fichiers){
  open F_LIRE,"$fic" or warn "E/S : $!\n";
   my $ligne;   
 
   while($ligne = <F_LIRE>){     
 
            if (($ligne =~ /f\=([^\s]*)/ig)){
                  my @values = split (" ",$ligne);
                  my $url = $values[0]; 
                  my $result = $values[1];
                  my $tmpValue = $hashTemp{"$url $result"};
 
 
                  $hashTemp{"$url $result"} = $tmpValue;                  
 
            }          
      }
    }
 
print F_ECRIRE "$_ $hashTemp{$_}\n" foreach (sort keys %hashTemp);
 
1;
 
sub getFiles{
  my $repert = shift(@_);
  local *tableau = shift(@_);
  my $fichier;
  my @sousrepertoires;
 
  if (-d $repert){
    opendir (REP,$repert)  or die "E/S : $!\n";
 
    while (defined ($fichier = readdir(REP))){
        if ((!($fichier=~m/^\./))&&(-d "$repert/$fichier")){
            push @sousrepertoires,"$repert/$fichier"; 
 
        }else{
          if ((!($fichier=~m/^\./))&&($fichier=~m/^test/)){
           push @tableau,"$repert/$fichier"; 
           }  
        }
    }
    foreach $fichier(@sousrepertoires){
      getFiles($fichier,\@tableau);    
    }
 }  
}
je ne sais pas comment m'en sortir, le sub recherche dans tous les répertoires et sous répertoires les fichiers qui commencent par test.
comment modifier mon script pour arriver à mon fichier final ?
merci de votre aide