Data :: Dumper以斜杠

时间:2015-04-22 14:09:01

标签: perl hash hashref data-dumper

所以我有一行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中看到了如何执行此操作,但我只想对其进行一些澄清。

1 个答案:

答案 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

通常更有用