MyXML — генератор XML

На днях озадачился небходимостью сгенерировать небольшой XML документ средствами Perl, но лезть в дебри CPAN, в поисках подходящих модулей стало лень. С другой стороны, обходиться банальным «print» тоже не хотелось, так как время от времени генерировать XML просто необходимо. Посему открыл текстовый редактор и начал ваять, а точнее доводить до ума некогда начатый, но так и не дописанный paсkage, по сути своей — простой генератор XML. Не на что выдающееся я естественно претендовать не собираюсь, но показать что в итоге получилось почему то захотелось.
Итак, сам pakage можно скачать тут, а вот простой пример того, что с ним можно делать:

#!/usr/bin/perl
use strict;
use base::MyXML;
our $top = MyXML->GXM("1.0","utf-8")->{"header"};
our $tag = MyXML->GXD(
"content",
join('',
MyXML->GXDM("elem",['type=app','name="Console"'],)->{"result"},
MyXML->GXDM("elem",['type=app','name="Editor"'],)->{"result"},
MyXML->GXDM("elem",['type=app','name="Player"'],)->{"result"},
),
['name="Soft"'],
)->{"result"}
open(FH,">data.xml");
print (FH $top."n");
print (FH $tag."n");
close(FH);

в итоге получился такой вот документ:

< ?xml version="1.0" encoding="utf-8"?>
<content name="Soft">
    <elem type="app" name="Console" id="1.1"></elem>
    <elem type="app" name="Editor" id="1.2"></elem>
    <elem type="app" name="Player" id="1.3"></elem>
</content>

На последок все же пару слов о MyXML. В распоряжении разработчика предоставляются 3 метода (пока 3 ;), а именно GXM(формирующий заголовок документа), GXD(формирующий открывающий, закрывающий теги, атрибуты по необходимости, и собственно, то, что между тегами заключено) и GXDM(формирующий «пустой тег» с атрибутами по необходимости).

MyXML — генератор XML