Comment puis-je réinitialiser complètement un hachage sans utiliser de boucle for?
Je voudrais réinitialiser complètement mon %hash
de sorte qu'il ne contient pas de clés ou valeurs. Je préfère utiliser un one-liner que d'avoir à utiliser une boucle.
Pour l'instant j'ai essayé:
%hash = 0;
%hash = undef;
Mais ces deux lancer des erreurs en mode strict, avec des avertissements activé, j'ai donc écrit une simple boucle for pour obtenir la même chose:
for (keys %hash) {
delete $hash{$_};
}
Cela fonctionne, mais je voudrais vraiment le faire avec un one-liner. Est-il un moyen de faire un reset d'un hachage que je suis dominant?
source d'informationauteur Structure
Vous devez vous connecter pour publier un commentaire.
Les deux
%hash = ();
etundef %hash;
de travail, avec la différence que ce dernier va redonner de la mémoire à utiliser pour d'autres choses. Le premier conserver la mémoire des choses dans la table de hachage utilisé avant, en supposant qu'il sera utilisé plus tard de toute façon, lorsque la valeur de hachage est d'être rempli de nouveau.Vous pouvez utiliser
Devel::Peek
d'observer le comportement:La
MAX
champs dans laPVHV
s sont les bits importants.Comment sur
Vous pouvez utiliser le fnud:
Que vous pouvez faire:
Utilisation
%hash = (); doit travailler
Depuis l'OP a demandé en une seule ligne qui fonctionne avec l'utilisation stricte et avertissements