当我有对哈希的引用时,如何判断一个键是否存在?以下内容看似简单明了(以我的专业水平),但打印出的内容与预期不同:
%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
我不期望我尝试工作的所有方式,但至少应该有一种方式。我已经检查了 perldoc、其他 SO 问题和谷歌搜索,我想出的只是我在其中一些行中使用的语法应该可以工作。