use strict; use XML::Simple; use Data::Dumper; use Tie::IxHash; my $Request_data = {}; tie my %NewOrder_data , 'Tie::IxHash'; %NewOrder_data = ( 'IndustryType' => ['EC'], 'CurrencyCode' => ['840'], 'CurrencyExponent1' => ['1'], 'CurrencyExponent2' => ['2'], ); my @keys = keys %NewOrder_data; print "\n@keys\n"; my $xmlDS = { Request => [ { NewOrder => [ { %NewOrder_data, } ], } ], }; my $request_xml = eval { my $xs = new XML::Simple(keeproot => 1, SuppressEmpty => 1); $xs->XMLout($xmlDS); }; print STDERR "\n\nxml :- >\n" . Dumper($request_xml); __END__ OUTPUT :-------> IndustryType CurrencyCode CurrencyExponent1 CurrencyExponent2 xml :- > 840 2 EC 1