Bonjour,
Je n arrive pas a supprimer definitivement une cle et sa valeur d un hash. Voici un exemple:
et le resultat:
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";
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..).
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
Merciiii
Partager