私は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};