我在 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};