Perl : vider un hashes de hashes

Marianne -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

quelqu'un sait-il comment vider un hashes de hashes en perl ?

Merci à tous !!

Marianne
A voir également:

2 réponses

lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Bonjour,

Il faut plutôt utiliser la fonction : delete
delete($HACH{$PLOP});


undef c'est une valeur spéciale que les variables possedent avant la prémiè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 une chaine vide.

Cependant undef n'est ni un nombre, ni une chaine, c'est plutôt un type de valeur scalaire indépendant.

Petit exemple:
#! /usr/bin/perl -w

%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é
print "\nfils effacé :\n";
delete $famille{"fils"};
affiche();


------------------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


En suite il faut adapter pour les hachage de hachage
1
mamiemando Messages postés 33782 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
$hash{$plop}=undef;
Non ?
0