use strict; use warnings; use XML::Simple; my $TGROUP = { COLS => 4, COLSPEC => [ 1, 2, 3, 4 ], THEAD => { head => "head" }, TBODY => { body => "body" }, }; print "\n"; for ( qw( COLS COLSPEC THEAD TBODY ) ) { # in your desired order print XMLout( {$_ => $TGROUP->{$_}}, RootName => $_, KeepRoot => 1, NoATTR => 1 ); } print "
\n";