如何取消引用 Data::Dumper 输出?

How do I dereference Data::Dumper output?

我总是忘记怎么做。
我有这个 Perl 代码:

打印转储程序($obj);

这是我的 Data::Dumper 输出:

$VAR1 = {
          'classname' => 'Template',
          'oid' => 2,
          'pid' => '50'
        };

但是当我做类似...

print LOGGER "classname is [\n". $obj{'classname'} . "]\n";

...我收到此错误...

Use of uninitialized value in concatenation (.) or string at

我做错了什么?

你应该用过$obj->{'classname'}。没有箭头,$obj{'classname'} 访问 %obj 哈希而不是 $obj.

中的哈希引用

这种错误会被 use strict; 捕获,所以你真正的错误不是那样做。