来自 Hash Reference 的 Perl 访问值

Perl access value from Hash Reference

在我的 Perl 代码中,我最终得到了如下所示的哈希引用。我想从中访问单个元素。我尝试了多种方法,但我无法获取它。

#!/usr/bin/perl
#use strict;
use Data::Dumper;
my %h={'one'=>1,'two'=>2};
print Dumper($h{'one'});

输出

$VAR1 = undef;

使用parentheses 来构建你的散列,而不是大括号:

use strict;
use warnings;
use Data::Dumper;

my %h = ('one'=>1, 'two'=>2);
print Dumper($h{'one'});

大括号用于构造哈希引用。

此外,添加 use warnings;,这会生成一条消息,指出您的代码存在问题。


或者,如果您真的想要哈希引用:

my $h = {'one'=>1, 'two'=>2};
print "$h->{one}\n";

您(不小心)在那里所做的是创建一个散列,其中的键是字符串化的散列引用,值是 undefperldoc perlref 有一个名为 WARNING: Don't use references as hash keys 的部分。