Я использую XML::Simple
в Perl для анализа XML-файла, и я застрял на том, как создать цикл для прохождения всех возможных элементов массива в хэше.
Воткак напечатать 0-й элемент массива:
print $book_info->{BookList}->{BookData}->{Prices}->{Price}[0]->{is_new};
Моя терминология может быть отключена при использовании слов хэш против массива, но я пытаюсь перебрать все элементы в {Price}[$ref]
Я пытался:
my @refs = $book_info->{BookList}->{BookData}->{Prices}->{Price};
foreach(@refs)
{
print $book_info->{BookList}->{BookData}->{Prices}->{Price}[$_]->{store_id};
print "\n";
}
и
foreach my $key (keys (%{$book_info->{BookList}->{BookData}->{Prices}->{Price}}))
{
print $key."\n";
}
Этот следующий оператор печати возвращаетзначение "ARRAY(0x159a57c)"
print [$book_info->{BookList}->{BookData}->{Prices}->{Price}];
Это работает для foreach, но я не могу получить доступ к элементам правильно:
foreach (@{$book_info->{BookList}->{BookData}->{Prices}->{Price}})
{
print $book_info->{BookList}->{BookData}->{Prices}->{Price}[$_]; #this line is wrong
}
Есть предложения?В элементе {Prices}
имеется несколько элементов {Price}
, и каждый элемент {Price}
имеет атрибуты [x]
в XML.