in reply to XML::XSLT problem

You do not want to read the contents of the XML file, just to apply the XSLT to it. Simply pass the name of the file to the transform method: (snippet taken from the man page of XML::XSLT):
use XML::XSLT; my $xslt = XML::XSLT->new ($xsl, warnings => 1); $xslt->transform ($xmlfile); print $xslt->toString;
This has the beneficial side-effect, that you will (hoepfully) get more descriptive error messages...