#!/usr/bin/perl use strict; use warnings; use XML::Simple qw(:strict); use Data::Dumper; my $filename = 'greeting.xml'; my $xs = XML::Simple->new( ForceArray => [ 'para' ], KeyAttr => { para => 'lang' }, RootName => 'doc', ); my $data = { 'para' => { 'en' => { content => 'Hello World' }, 'zh' => { content => "\x{4f60}\x{597d}\x{4e16}\x{754c}" }, }, }; binmode STDOUT, ':utf8'; my $decl = ""; print $xs->xml_out($data, XMLDecl => $decl);