Date création : 11-11-2007 00:00:00 Date de la dernière modification : 07-01-2008 22:08:46
 Vous êtes dans : Langage Perl Astuces / Hash (tableaux associatifs)Vider un hash
Pour vider un hash il faut utiliser la fonction : delete, ce qui permettra d'effacer la clé ainsi que la valeur.
delete($HACH{$PLOP});
undef c'est une valeur spéciale que les variables possèdent avant la première affectation. Si on utilise undef comme quelque chose numérique alors il vaut 0 et si on veut l'utiliser comme une chaîne il vaut la chaine vide.
Cependant undef n'est ni un nombre, ni une chaine, c'est plutôt un type de valeur scalaire indépendant.
Exemple :
Le script
#!/usr/bin/perl
use strict;use warnings;
my %famille = (
pere => "jean",
mere => "marie",
fils => "george",
fille => "sarah"
);
sub affiche {
my @ma_famille = keys %famille;
my $membre;
print "Clefs : @ma_famille\n";
print "Valeurs : ";
foreach $membre (@ma_famille) {
my $prenom = $famille{$membre};
if (defined $prenom) {
print "$prenom ";
} else {
print "UNDEF ";
}
}
print "\n";
}
print "Debut :\n";
affiche();
# on utilise undef, la clé fils n'est pas effacée, elle contient la valeur undef
print "\nfils pas définie :\n";
undef $famille{"fils"};
affiche();
# on utilise delete la clé fils et sa valeur sont effacés
print "\nfils effacé :\n";
delete $famille{"fils"};
affiche();
__END__
|
Le résultat
Debut :
Clefs : fille mere pere fils
Valeurs : sarah marie jean george
fils pas définie :
Clefs : fille mere pere fils
Valeurs : sarah marie jean UNDEF
fils effacé :
Clefs : fille mere pere
Valeurs : sarah marie jean
|
|