#!/usr/bin/perl use warnings; use strict; ; use XML::Simple qw(:strict); use Data::Dumper; my $xml =q( file1.exe file2.zip ); my $ref = XMLin($xml, forcearray => [ qw(files) ], keyattr => [] ); my %files; for my $elem(@{$ref->{files}}){ my $filesref = $elem->{file}; $files{$_->{content}} = $_->{file_url} for(@$filesref); } print Dumper(\%files);