Je voudrais complètement réinitialiser mon %hash
afin qu'il ne contienne pas de clés ou de valeurs du tout. Je préfère utiliser un one-liner que d'utiliser une boucle.Comment réinitialiser complètement un hachage sans utiliser de boucle for?
Jusqu'à présent, j'ai essayé:
%hash = 0;
%hash = undef;
Mais ces deux lancer des erreurs en mode strict avec des avertissements est activé, j'ai donc écrit une simple boucle pour obtenir la même chose:
for (keys %hash) {
delete $hash{$_};
}
Cette fonctionne mais je voudrais vraiment le faire avec un one-liner. Y at-il un moyen de réinitialiser un hachage que je néglige?
Je suis étonné que personne a déjà la question non posée. AFAICR Je n'ai jamais eu besoin de réinitialiser un hachage car avec Perl on peut avoir des portées très serrées. Je laisse plutôt les variables tomber tout simplement hors de la portée; si dans une boucle, un nouveau lexique serait créé avec 'my' près du sommet. - Je pense que c'est un problème XY avec de la place pour l'amélioration algorithmique, peut-être donner plus de contexte? – daxim
Le hachage est un global que je crée au début de mon programme après tous les freins et contrepoids. Il est modifié avec différents sous-programmes jusqu'à ce que j'attribue la version finale dans un tableau. Étant donné ce flux, à moins que je ne manque quelque chose, je crois qu'il est plus facile pour moi de 'réinitialiser' ce hachage particulier après l'avoir assigné au tableau que de le recréer avec une instruction 'my'. (Il est possible que je néglige un problème XY puisque je ne savais pas comment faire quelque chose comme réinitialiser un hachage) – Structure