It may be that there is an older version of XML::XSLT (lacking the "new" method) already installed somewhere in a "default" @INC path, and your perl script will always find that first.
in reply to XML::XSLT problem
Try twiddling with @INC before loading the module -- e.g. put the path having the current version of the module in your PERL5LIB environment variable or on the shebang line: "-I/path/to/new/version".
I haven't looked at the docs yet about how the various path settings are ordered at start-up, but I think one of those methods will do an "unshift" of the given path onto @INC (i.e. put it at the front of the list).
As a last resort, you could do something like this in your script:
# instead of use XML::XSLT; ...
unshift @INC, "/path/to/new/version";