参考文献:http://search.cpan.org/~josephw/XML-Writer-0.615/Writer.pm

脚本:

[root@dou xml]# cat w1.pl
#!/usr/bin/perl -w
use strict;
use XML::Writer;
use IO::File;

my %host = (
        'name' => 'perl',
        'addr' => '192.168.0.6',
);

my $FH = IO::File->new(">output.xml");
my $writer = XML::Writer->new(OUTPUT => $FH);
$writer->xmlDecl("UTF-8");
$writer->startTag("network");
print $FH "\n";
$writer->startTag('host');
foreach my $field (keys %host) {
        print $FH "\n ";
        $writer->startTag($field);
        $writer->characters($host{$field});
        $writer->endTag;
}
print $FH "\n";
$writer->endTag;
print $FH "\n";


$writer->endTag;
$writer->end;
$FH->close();
[root@dou xml]# perl w1.pl

执行结果:
[root@dou xml]# cat output.xml
<?xml version="1.0" encoding="UTF-8"?>
<network>
<host>
 <name>perl</name>
 <addr>192.168.0.6</addr>
</host>
</network>
[root@dou xml]#