'phonenumbers' => [ # <- Repeats phonennumbers { 'phonenumber' => { 'number' => '9163723752' } }, { 'phonenumber' => { 'number' => '9166413900' } } ] #### 'phonenumbers' => [ # <- Repeats phonennumbers { 'phonenumber' => [ # <- Repeats phonennumber { 'number' => '9163723752' }, { 'number' => '9166413900' } ] } ] #### >type !.xml >type !.pl use XML::Simple qw( XMLin XMLout ); # It didn't think "!.xml" was a file name until I added "./". # Options were lowercase in older versions (like the one I have. my $xml = XMLin('./!.xml', keeproot => 1, forcearray => 1); print XMLout($xml, keeproot => 1); >perl !.pl