10
votes

Comment puis-je déterminer si un hachage perl contient une clé de clé à une valeur non définie?

Je dois déterminer si un hachage de PERL a une clé donnée, mais cette touche sera mappée sur une valeur de la FNUD. Plus précisément, la motivation pour cela consiste à voir si des drapeaux booléens lors de l'utilisation de getopt () avec une référence de hachage transmise. J'ai déjà fouillé ce site et Google, et existe () et défini () ne semble pas être applicable pour la situation, ils viennent de voir si la valeur Pour une clé donnée, il est indéfini, ils ne vérifient pas si le hachage a réellement la clé. Si je suis une RTFM ici, veuillez me pointer le manuel qui explique cela.


0 commentaires

3 Réponses :



28
votes

existe () et défini () Ne semble pas être applicable pour la situation, ils ne voyent que si la valeur d'une clé donnée est indéfinie, ils ne vérifient pas si le hachage a la clé p>

incorrect. C'est en effet ce que défini () code> fait, mais existe () code> fait exactement ce que vous voulez: p>

$hash{key1} exists: yes
$hash{key1} is defined: yes
$hash{key2} exists: yes
$hash{key2} is defined: no
$hash{key3} exists: no
$hash{key3} is defined: no


0 commentaires

6
votes

Réponse courte:

 if ( exists $hash{$key} and not defined $hash{$key} ) {
    ...
 }


0 commentaires