in reply to
Why XSLT and not just Perl?
XSLT's advantages really stem from being cross platform. I can take the same XSLT and run it through libxslt, MS-XML, Saxon, Xerces, or any other XSLT engine. That's useful in two ways - it means you can find an optimised XSLT engine for your data (different XSLT engines cope better with different data) and also because it means a lot of people are using XSLT, including non-perl people, so more people can understand the transformation part of your code.
Another advantage XSLT has over perl is that I've found it to be faster, especially when using libxslt, because it's all happening in C code, rather than Perl.
Anyhow, if you like Perl for transforming XML you might find XPathScript to be a good best of both worlds. There's a standalone module on CPAN for doing XPathScript transformations, and it's also built into AxKit.