require('XML::XPath'); var x = %s'XML::XPath'.new(ARGF.slurp); [x.findnodes('//item[1]')][0]; say [x.findnodes('//price')].map{x.getNodeText(_)}; [x.findnodes('//name')];