通过引用传递xml子节点

时间:2016-04-11 20:22:47

标签: xml perl reference

我正在尝试通过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子节点。

1 个答案:

答案 0 :(得分:1)

$child已经是一个参考。如果您在print $child来电之前致电print ref($child)parseXML(),则可以看到此消息。如果你只是致电parseXML($child),你应该没事。

传递给\$child函数的

parseXML必然是标量引用,将它用作哈希引用是没有意义的{{1} }。