ハッシュへの参照がある場合、hasにキーが存在するかどうかをどのように判断しますか?以下は(私の専門知識のレベルでは)単純で明白に見えましたが、予想外の何かを印刷します:
%simple = (a => 8, b=> 9);
print 0+exists $simple{a}, 0+exists $simple{c}, "\n"; # prints 10
%href = \%simple;
print 0+exists $href{a}, 0+exists $href{c}, "\n"; # expect fail; bad syntax
print 0+exists $href->{a}, 0+exists $href->{c}, "\n"; # should work
print 0+exists ${$href}{a}, 0+exists ${$href}{c}, "\n"; # should work
print 0+exists $$href{a}, 0+exists $$href{c}, "\n"; # not sure
# see if attempt to ask about {c} accidently created it
print %simple, "\n";
これは印刷されます
10
00
00
00
00
a8b9
私は期待しています(非常に楽観的です):
10
10
10
10
10
a8b9
私が試みたすべての方法を期待しているわけではありませんが、少なくとも1つはそうすべきです。私はperldoc、他のSOの質問、およびグーグルをあちこちで調べました、そして私が思いついたのはこれらの行のいくつかで使用する構文が機能するはずであるということだけです。