my @names = @{ $sth->{NAME} }; my @ordered_values = (); while ( my $row = $sth->fetchrow_hashref ) { @ordered_values = @{$row}{@names}; } print Dumper(\@names); print Dumper(\@ordered_values); my $xs = XML::Simple->new( keyattr => {[cdr =>'npa' ]}, rootname => 'dataset' ); my $cgi = CGI->new; print $cgi->header('text/xml'); print XMLout( \@ordered_values ); #### $VAR1 = [ 'NPA', 'GC_ID', 'I_TG_NAME', 'E_TG_NAME', 'DN', 'STATE' ]; $VAR1 = [ AAAABUcKyqQhEAABI34stA.4515613, '989', OQ-OZDN-D-UHMC-UHMC-0939, MQ-MTBO-T-CCDPN-FTQ-1737, 9895555555, MI ]; Content-Type: text/xml; charset=ISO-8859-1 AAAABUcKyqQhEAABI34stA.4515613 989 OQ-OZDN-D-UHMC-UHMC-0939 MQ-MTBO-T-CCDPN-FTQ-1737 9895555555 MI