... Aston Clinton Andy Barth 1 GB ANDY BARTH Aylesbury Daniele Dall'Acqua 2 GB DANIELE DALL'ACQUA Calne Nigel Drew 3 GB NIGEL DREW ... #### my $xml_to_hash = XMLin($xml_file, #ForceArray => 0, #KeyAttr => {}, ); #### $VAR1 = { 'inventors' => { 'inventor' => { 'Nigel Drew' => { 'country' => 'GB', 'city' => 'Calne', 'number' => { 'content' => '3', 'type' => 'integer' }, 'upper-name' => 'NIGEL DREW' }, 'Daniele Dall\'Acqua' => { 'country' => 'GB', 'city' => 'Aylesbury', 'number' => { 'content' => '2', 'type' => 'integer' }, 'upper-name' => 'DANIELE DALL\'ACQUA' }, 'Andy Barth' => { 'country' => 'GB', 'city' => 'Aston Clinton', 'number' => { 'content' => '1', 'type' => 'integer' }, 'upper-name' => 'ANDY BARTH' } }, 'type' => 'array' }, #### $VAR1 = { 'inventors' => [ { 'inventor' => [ { 'country' => ['GB'], 'city' => ['Aston Clinton'], 'upper-name' => ['ANDY BARTH'], 'number' => [{'content' => '1', 'type' => 'integer'}], 'name' => ['Andy Barth'] }, { 'country' => ['GB'], 'city' => ['Aylesbury'], 'upper-name' => ['DANIELE DALL\'ACQUA'], 'number' => [{'content' => '2', 'type' => 'integer'}], 'name' => ['Daniele Dall\'Acqua'] }, { 'country' => ['GB'], 'city' => ['Calne'], 'upper-name' => ['NIGEL DREW'], 'number' => [{'content' => '3', 'type' => 'integer'}], 'name' => ['Nigel Drew'] } ], 'type' => 'array' } ], ... #### foreach my $inventors(%{$xml_to_hash->{inventors}}){ if ($inventors->{inventor}->{number}->{content} == 1){ print $inventors->{inventor}; } } #### foreach my $inventor(%{$xml_to_hash->{inventors}->{inventor}}){ if ($inventor->{number}->{content} == 1){ print $inventor; } }