Bonjour,

Je n arrive pas a supprimer definitivement une cle et sa valeur d un hash. Voici un exemple:
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
 
%hash=();
$hash{1}{4}=10;
$hash{1}{6}=4;
$hash{4}{4}=2;
$hash{2}{9}=10;
$hash{2}{4}=2;
 
print "size of hash".keys(%hash)."\n";
foreach $key1 (keys %hash)
{
	foreach $key2 (keys %{$hash{$key1}})
	{
		print "$key1 and $key2 have the son $hash{$key1}{$key2}\n";
	}
}
delete $hash{1}{4};
delete $hash{1}{6};
delete $hash{4}{4};
print "size of hash".values(%hash)."\n";
$count =0;
foreach $key1 (keys %hash)
{
	foreach $key2 (keys %{$hash{$key1}})
	{
		if( exists($hash{$key1}{$key2}) ) {$count++;}
		print "$key1 and $key2 have the son $hash{$key1}{$key2}\n";
	}
}
print "counter: $count\n";
et le resultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
size of hash3
4 and 4 have the son 2
1 and 6 have the son 4
1 and 4 have the son 10
2 and 4 have the son 2
2 and 9 have the son 10
size of hash3
2 and 4 have the son 2
2 and 9 have the son 10
counter: 2
Donc il supprime bien la valeur, mais ne me supprime pas la cle... Est ce qu il y a une solution plus propre que ce compteur. (j aurais bien aime utiliser la taille du hash directement en fait..).

Merciiii