Что ж, из отправленного вами XML-файла я получаю следующее:
Entity: line 3: parser error : Opening and ending tag mismatch: league line 0 and leage
Это даже не выглядит как вопрос строгого режима / предупреждения, потому что он появляется, когда я комментирую свой USUW.
Но если у вас есть нужные теги, это должно сработать:
$xml->{game}{name};
И если я позвоню XMLin
с KeepRoot => 1
, вы найдете его по адресу:
$xml->{league}{game}{name};
Если у вас возникли проблемы с определением способа считывания данных, сделайте следующее:
use 5.010;
use strict;
use warnings;
use Data::Dumper;
use XML::Simple;
my $xml = XMLin( $input );
say Data::Dumper->Dump( [ $xml ], [ '$xml' ] );
И затем используйте путь к представленным структурам.
Примечание:
$xml->{league}->{game}->['name'];
должен был умереть с: «Не указана ссылка на массив» даже без включенных предупреждений.['string']
является ссылкой на массив со строкой 'string'
в качестве единственного элемента.И если бы $xml->{league}{game}
был массивом, он умер бы с нечисловой ошибкой, потому что строки не обращались к массивам.