http://www.perlmonks.org?node_id=792522


in reply to XML parsing question

Hi, you should dump $doc with something like Data::Dumper:
$VAR1 = { 'document' => { '\\2006\\200601\\20060125\\20060125_19.txt' => { 'record' => [ { 'group' => 'P6', 'data-class' => 'Target', 'sentence-number' => '3' }, { 'group' => 'P6', 'data-class' => 'Good', 'sentence-number' => '12' } ], 'sourcecategory' => 'News Archive', 'datetime' => '2006/01/25', 'schemeversion' => '1.1' }, '\\2006\\200601\\20060125\\20060125_18.txt' => { 'sourcecategory' => 'News Archive', 'datetime' => '2006/01/25', 'schemeversion' => '1.1' } } };

As you can see, the records are an array ref of hashrefs at the same level as the documents attributes ($doc->{document}->{$key}->{record}). You can iterate over the records at this point (i.e. check if record is defined and is an arrayref).