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 );