XML のパーズ・作成には、XML::LibXML がオススメでしょう。高速で安定して動作します。 XS を利用できる環境ならば、これがベストの選択肢です。
use strict;
use warnings;
use XML::LibXML;
my $dom = XML::LibXML::Document->new(1.0, 'utf-8');
my $root = $dom->createElement('html');
my $head = $dom->createElement('head');
my $title = $dom->createElement('title');
$title->appendText("test");
$head->appendChild($title);
$root->appendChild($head);
$dom->setDocumentElement($root);
print $dom->toString();
のようなプログラムを書いた場合の出力は
<?xml version="1.0" encoding="utf-8"?>
<html><head><title>test</title></head></html>
のようになります。
XML::LibXML は、DOM API をつかえるので JS などで DOM 操作に慣れている方でしたら容易に使い こなすことができることでしょう。
use strict;
use warnings;
use XML::LibXML;
my $xml = <<'...';
<?xml version="1.0" encoding="utf-8"?>
<html><head><title>test</title></head></html>
...
my $doc = XML::LibXML->new->parse_string($xml);
my ($title, ) = $doc->getElementsByTagName('title');
このように、DOM で XML を操作できます。
Last modified: $Date: 2008-05-22T09:21:23.154313Z $