Почему XML :: LibXML добавляет дочерний элемент к одному , а не к другому?

Я наблюдаю странное поведение с XML :: LibXML .

Приведенный ниже код предназначен для добавления 2005 к обоим узлам . Здесь что-то не так? I пробовал изменить запрос XPath ( // библиотека / книга ), но результат тот же .

use strict;
use warnings;
use XML::LibXML;

my $xml = XML::LibXML->new->parse_string( << 'MAIN' );
  
    
      Perl Best Practices
      Damian Conway
      0596001738
      542
      
    
    
      Perl Cookbook, Second Edition
      Tom Christiansen
      Nathan Torkington
      0596003137
      964
      
    
  
MAIN

my ( $age ) = XML::LibXML->new
                ->parse_string( '2005' )
                  ->findnodes( './year' );

my @books = $xml->findnodes( '//book' );

$_->addChild( $age ) for @books;

print $xml->toString;

Выходные данные



    
      Perl Best Practices
      Damian Conway
      0596001738
      542
      
    
    
      Perl Cookbook, Second Edition
      Tom Christiansen
      Nathan Torkington
      0596003137
      964
      
    2005
  

5
задан Zaid 26 August 2011 в 16:32
поделиться