use XML::LibXML; my $tree = XML::LibXML->load_xml(string => <<'EOT'); input output eingabe ausgabe EOT test('english',1); test('deutsch',1); sub test { my ($language,$id) = @_; my @result=$tree->findnodes("/language/$language/widget[\@ID=$id]"); print $_->textContent . "\n" for @result; my @result2=$tree->findnodes("/language/$language/widget[\@ID='$id']"); print $_->textContent . "\n" for @result2; }