来自 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";
您(不小心)在那里所做的是创建一个散列,其中的键是字符串化的散列引用,值是 undef
。 perldoc perlref
有一个名为 WARNING: Don't use references as hash keys 的部分。
在我的 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";
您(不小心)在那里所做的是创建一个散列,其中的键是字符串化的散列引用,值是 undef
。 perldoc perlref
有一个名为 WARNING: Don't use references as hash keys 的部分。