所以我有一行perl代码,如下所示:
my $stored_value = $foo->some_function($argument);
当我做一个翻车机时:
warn Dumper $stored_value
我收到了这个结果。
$VAR1 = \{
'foo' => 'abc',
'bar' => '123'
};
现在,我已经看到了这样的结果:
warn Dumper $another_hash;
$VAR1 = {
'foo' => 'bar',
'baz' => 'quux'
};
如果我想说出foo的价值,我会输入这样的内容:
warn Dumper $another_hash->{'foo'};
结果就是这样。
$VAR1 = 'bar';
最初,我无法通过我的Google搜索找到任何内容,但就在此,我制作了一个小小的测试脚本来玩我看到的内容,我发现了这个
#!/usr/bin/perl
#
use strict;
use warnings;
use Data::Dumper;
sub test {
my $brother = {'Ted'};
$brother->{'Ted'} = 'brother';
return \$brother;
}
my $blah= test();
my $blah = ${$blah};
print Dumper $blah->{'Ted'};
print "\n";
以下是我的结果:
$VAR1 = 'brother';
我想分享我发现的东西,但其他人遇到了同样的事情,但我究竟看到了什么?
我在http://perldoc.perl.org/perlref.html#Using-References中看到了如何执行此操作,但我只想对其进行一些澄清。
答案 0 :(得分:3)
我不确定您的问题是什么,但您的输出显示$stored_value
是对标量的引用,而标量又是对哈希的引用
保持对标量的引用很少有用,这可能表示存在错误。
这个简短的程序显示了如何创建价值
use strict;
use warnings;
use Data::Dumper;
my $href = {
foo => 'abc',
bar => '123',
};
my $href_ref = \$href;
print Dumper $href_ref;
<强>输出强>
$VAR1 = \{
'bar' => '123',
'foo' => 'abc'
};
顺便说一句,使用Data::Dump
优先于Data::Dumper