#!/usr/bin/perl use strict; use warnings; use XML::Twig; my %url2file; XML::Twig->new( twig_handlers => { url => sub { $url2file{$_->text}= $_->parent( 'appDeploymentFile')->att( 'name'); $_->purge; } } ) ->parsefile( "my_data.xml"); use YAML::Syck; print Dump( \%url2file);