【发布时间】:2013-03-17 09:33:58
【问题描述】:
我在 Perl 中有一个映射结构,它是从某个实用程序中获得的。其中的转储如下所示:
$VAR1 = {
'A0' => 'me_one',
'A2' => 'me_two',
'A6' => 'me_six'
}
我想搜索地图中是否存在特定键。假设我想知道A4 是否在地图中。
现在,如果我使用 if (exists $map{'A4'}),我会在构建过程中遇到错误,$map{。
如果我使用if (exists $map->{'A4'}),我不会收到任何错误,并且会得到想要的结果。但是我在互联网上搜索的所有地方,为了检查地图中是否存在键,Perl 中的语法是if (exists $map{key})
现在我的推断是,我从实用程序中得到的不是地图,尽管在我看来仍然像转储中的地图。有人知道发生了什么吗?谢谢。
编辑:感谢@raina77ow 的回答。添加此内容以进一步解释。
my %map;
print $map{key};
my $map_ref = \%map; # The reference was what the utility was returning
print $map_ref->{key};
【问题讨论】: