Bonjour,
dans un fichier du type :
aaa
bbbbb
ccccc
aaa
aaaa

il s'agit d'enlever les doublons.
Il faudrait à priori (?) passer par une table de hachage.
J'ai essayé :
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
open(FILE,"$path/toto");
while(<FILE>)
{
push @TdT, [ split('\n', $_) ];
}
my %hachage = @TdT;
my @uniques = keys %hachage;
 
 
# affiche le tableau de hachage hachage
foreach my $k (@uniques)
{
print "Clef=$k Valeur=$hachage{$k}\n";
print "Valeurxx=$TdT[$hachage{$k}]\n";
 
}
 
# ---> ne donne pas les valeurs
 
 
 
foreach my $t (@TdT)
{ next if $deja_vu{$t}++;
push(@uniques,$t);
}
# --> ceci ne marche pas non plus !
# affiche le tableau uniques
for $aref ( @uniques ) {
print "@$aref\n";
}
# j'obtiens les mêmes données que fichier toto avec les doublons !
 
 
et !!!!
for $i ( 0 .. $#TdT ) {
$objet = $TdT[$i][0];
print "elt $i is $objet \n";
print DOUBLONS @uniques ;
print DOUBLONS "\n" ;
}
#--> ne marche pas non plus !


Je pense qu'il y a plus simple !

Merci pour vos lumières.