use XML::Writer; my $writer = XML::Writer->new( NEWLINES=>0, DATA_MODE=>1, DATA_INDENT=>2, ); $writer->startTag("dataset"); for(my $i=0; $i< @ordered_values;$i++) { my $row = $ordered_values[ $i ]; $writer->startTag("row", "num" => $i); for(my$j=0; $j < @$row; $j++) { $writer->startTag("cdr", "name" => $names[$j]); $writer->characters( $row->[ $j ] ); $writer->endTag(); } $writer->endTag(); } $writer->endTag(); $writer->end();