Votre IP: 38.107.179.242 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 11-11-2007 00:00:00
Date de la dernière modification : 07-01-2008 22:08:46
Perl  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

Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS