|Syntactic Confectionery Delight|
As already mentioned XML isn't a layout system. XML is a markup language that is relativly easy to manipulate with Perl (or any other modern language) and it's easy to convert to other XML and non XML formats via XSLT.
XML is buzz word compliant, but don't let that put you off, it is a great format to use and Perl has the tools to do the work. With XML you get a nice public standard, so you get lots of documentation both on and off line. While it's verbose, you can read and edit it by hand with a simple text editor - though I would recommend a proper XML editor. My favourite is the XSLT language, while it seems a bit wiered at first it's very powerful, and well documnented too.
I'd start by looking at XML::LibXML and XML::LibXSLT these are great modules, giving you a powerful XML parser and very fast XSLT processor. Both are well written and based on the excellent and very fast The XML C library for Gnome. Don't think that XSLT is slow, while it's true that the first processors were slow with poor standards support the picture has improved, and it can be done on the fly without big-iron.
Depending on how sophisticated you want to go, I'd also take a look at the excellent AxKit XML publising suite for Apache. It's based on the LibXML and LibXSLT modules, but adds sophistication and Apache integration as well.
XSLT can easily handle common XML output forms such as XHTML or RSS/RDF, plain text formats such as CSV/TSV, and produce XSL-FO for conversion to PDF. It may be overkill for your project, but it is a pretty sophisticated set of technologies.
In reply to Re: Is XML the only generic layout system out there?