Expresión xpath en findnodes () devolviendo lista de nodos vacía

XML:

<zoo xmlns="http://www.zoo.com" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="http://www.zoo.com employee.xsd">

<area id="1" posizione="nord" nome="scimmie">
    <animale>
        <nome>Gigi</nome>
        <sesso>Male</sesso>
        <eta>3</eta>
    </animale>

    <animale>
        <nome>Gigia</nome>
        <sesso>Female</sesso>
        <eta>2</eta>
    </animale>
</area>

<area id="2" posizione="nord" nome="giraffe">
    <animale>
        <nome>Giro</nome>
        <sesso>Male</sesso>
        <eta>6</eta>
    </animale>

    <animale>
        <nome>Gira</nome>
        <sesso>Female</sesso>
        <eta>5</eta>
    </animale>
</area>
</zoo>

código:

my $parser = XML::LibXML->new;
my $doc = $parser->parse_file("../xml/animals.xml");
my $root = $doc->getDocumentElement();

my $new_animal = $doc->createElement("animale");

my $name_element = $doc->createElement("nome");
$name_element->appendTextNode($name);

my $gender_element = $doc->createElement("sesso");
$gender_element->appendTextNode($gender);

my $age_element = $doc->createElement("eta");
$age_element->appendTextNode($age);

$new_animal->appendChild($name_element);
$new_animal->appendChild($gender_element);
$new_animal->appendChild($age_element);

my $area_element = $root -> findnodes("//area[\@id=$area]")->get_node(1);

$area_element->appendChild($new_animal);

$ area es el ID de un área (generalmente 1 ahora que estoy probando)

mi propósito es crear un nuevo animal y agregarlo al área apropiada

Pero tengo el problema de que la instrucción.

    my $area_element = $root -> findnodes("//area[\@id=$area]")->get_node(1);

no funcionará, porque $ area_element es undef, porque findnodes siempre devuelve una lista de nodos vacía (marcada imprimiendo el tamaño ()).

Creo que el problema es la expresión xpath dentro de los nodos de búsqueda, pero no puedo entender lo que está mal, uso la misma expresión con otra biblioteca (XML :: XPath) y está funcionando.

Que pasa

Respuestas a la pregunta(2)

Su respuesta a la pregunta