use strict; use warnings; use Template; use XML::Simple; my $data = XMLin( $ARGV[0], ForceArray => 'class' ); $data->{class} = [ sort { $a->{strength}->[0] <=> $b->{strength}->[0] } @{$data->{class}} ]; #use Data::Dumper; #print Dumper ( $data ); my $tt = Template->new(); $tt->process( \*DATA, {data => $data}, $ARGV[1] ) || die $tt->error(), "\n"; __DATA__
[% FOR class = data.class %] [% class.name.0 %] [% class.strength.0 %] [% END %]