我正在尝试通过PERL中的引用传递xml子节点,但我一直在接收 “错误
中不是HASH参考my $global_XMLData = $xml->XMLin($response->content(), ForceArray => ['Parent']);
for my $child(@{$global_XMLData->{Parent})
{
parseXML(\$child);
}
sub parseXML
{
my $child= shift;
$global_bu{bu_id} = $child->{theAttribute};
# There's about 20-30 more attributes to get,
# but for this example, there's only one
}
现在,如果我按值传递它,它工作得很好,我确实得到了数据,但每次我尝试通过引用传递它时,我一直收到错误。有帮助吗?我只是不希望数据是副本,因为它是一个相当大的xml子节点。
答案 0 :(得分:1)
$child
已经是一个参考。如果您在print $child
来电之前致电print ref($child)
或parseXML()
,则可以看到此消息。如果你只是致电parseXML($child)
,你应该没事。
\$child
函数的 parseXML
必然是标量引用,将它用作哈希引用是没有意义的{{1} }。