in reply to XML namespace question

Create a context and assign prefixes to the namespaces. The prefixes you choose need not match those used in the document, if any.

use XML::LibXML::XPathContext qw( ); my $xpc = XML::LibXML::XPathContext->new(); $xpc->registerNs('nc', 'urn:ietf:params:xml:ns:netconf:base:1.0'); $xpc->registerNs('j', 'http://xml.juniper.net/junos/12.3R9/junos');

You don't appear to be using the second namespace in your queries. If it's the case, you don't need to register a prefix for it.

Then change $node->find*($xpath) to $xpc->find*($xpath, $node), and use the defined prefixes to specify the namespace of the elements you want to locate.

$xpc->findnodes( "/nc:rpc-reply/nc:vlan-information/nc:vlan", $doc) $xpc->findnodes( "nc:vlan-name|nc:vlan-tag|.//nc:vlan-member-interface", $vlan)

(Removed needless instances of "./".)