my %nums; while ($reader->nextElement( 'Number' )) { my $number = $reader->copyCurrentNode(1)->textContent; $reader->nextElement( 'address' ); my $node = $reader->copyCurrentNode(1); my $infohash = { house => $node->getElementsByTagName( 'housenumber' )[0]->textContent, street => $node->getElementsByTagName( 'streetname' )[0]->textContent, }; $nums{$number} = $infohash; }