passing Perl method results as a reference

Posted by arareko on Stack Overflow See other posts from Stack Overflow or by arareko
Published on 2010-06-12T03:20:26Z Indexed on 2010/06/12 3:22 UTC
Read the original article Hit count: 207

Filed under:

Some XML::LibXML methods return arrays instead of references to arrays.

Instead of doing this:

$self->process_items($xml->findnodes('items/item'));

I want to do something like:

$self->process_items(\$xml->findnodes('items/item'));

So that in process_items() I can dereference the original array instead of creating a copy:

sub process_items {
    my ($self, $items) = @_;
    foreach my $item (@$items) {
        # do something...
    }
}

I can always store the results of findnodes() into an array and then pass the array reference to my own method, but let's say I want to try a reduced version of my code. Is that the correct syntax for passing the method results or should I use something different?

Thanks!

© Stack Overflow or respective owner

Related posts about perl