use XML::Simple; use Data::Dumper; use XML::Parser; my $simple = XML::Simple->new (ForceArray => 1, KeepRoot => 1); my $data = $simple->XMLin('template_POS.ssp'); $VAR1 = { 'profile' => [ { 'protocol' => 'Hypercom', 'scenario' => [ { 'test' => [ { 'id' => '001', 'channel' => 'None', 'message_data' => [ { 'H001' => [ { 'i' => [ '**MS**' ], 'o' => [ '**MS**' ] } ], etc...