我总是忘记怎么做。
我有这个Perl代码:
print Dumper($ 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
我在这里做错了什么?
答案 0 :(得分:4)
您应该使用$obj->{'classname'}
。如果没有箭头,$obj{'classname'}
将访问%obj
哈希,而不是$obj
中的hashref。
这是由use strict;
捕获的那种错误,因此您的真正错误不会这样做。