37 votes

Comment effacer un hash en Perl

Disons que nous définissons un hachage anonyme comme ceci :

my $hash = {};

Et utiliser le hachis après. Ensuite, il est temps de vider ou d'effacer le hachage pour une réutilisation. Après quelques recherches sur Google, j'ai trouvé :

%{$hash} = () 

et :

undef %{$hash}

Les deux répondront à mes besoins. Quelle est la différence entre les deux ? Sont-elles toutes deux des façons identiques de vider un hachage ?

32voto

Axeman Points 24103

%$hash_ref = (); a plus de sens que de défaire le hachage. Dé-définir le hachage signifie que vous en avez fini avec le hachage. Assigner une liste vide indique que vous voulez simplement un hachage vide.

24voto

Ether Points 34103

Oui, ils sont absolument identiques. Elles suppriment toutes les clés et valeurs existantes de la table et définissent le hachage comme une liste vide.

Ver perldoc -f undef :

undef EXPR
undef Indéfinit la valeur de EXPR, qui doit être une lvalue. Utiliser uniquement sur une valeur scalaire, un tableau (à l'aide de "@"), un hachage (à l'aide de "%"), un sous-routine (avec "&"), ou un typeglob (avec "*")...
Exemples :

               undef $foo;  
               undef $bar{'blurfl'};      # Compare to: delete $bar{'blurfl'};  
               undef @ary;  
               undef %hash;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X