Первая ошибка - ищет на CPAN, не Google :)
Это подбрасывает набор результатов, но действительно скорее выделяет проблему CPAN, что существует больше чем одно решение, и не всегда ясно, которые работа, отказались, повреждаются, медленные или что бы то ни было.
И волнующе, лучший ответ (или по крайней мере, один из лучших) подходит на странице четыре из результатов :( Поскольку другие люди предложили, XML:: LibXSLT устойчив и делает задание:
use XML::LibXSLT;
use XML::LibXML;
my $parser = XML::LibXML->new();
my $xslt = XML::LibXSLT->new();
my $source = $parser->parse_file('foo.xml');
my $style_doc = $parser->parse_file('bar.xsl');
my $stylesheet = $xslt->parse_stylesheet($style_doc);
my $results = $stylesheet->transform($source);
print $stylesheet->output_string($results);
Если Вы хотите произвести результаты в файл, затем добавляют это
#create output file
open(my $output_xml_file_name, '>', 'test.xml');
print $output_xml_file_name "$results";
Если Вы не хотите делать что-нибудь воображение, тем не менее, существует XML:: LibXSLT:: Легкий, который по существу просто переносит вышеупомянутое в один вызов метода (и делает набор умного материала негласно с помощью Американского лося. Проверьте источник на образование!).
use XML::LibXSLT::Easy;
my $p = XML::LibXSLT::Easy->new;
my $output = $p->process( xml => "foo.xml", xsl => "foo.xsl" );
Не может действительно сказать, который является лучшим решением, потому что у меня не было шанса судить их всех.
Но я могу рекомендовать Вам попробовать модуль Perl LibXSLT.
Это - интерфейс гному libxslt библиотека. Я использовал его на одном из моего недавнего проекта, было удовлетворено им.
Вы не говорите, что ОС, но для большинства *отклоняют платформы, XML:: LibXML будет самым легким, чтобы использовать и установить.
До сих пор я очень удовлетворен XML:: LibXML для non-xslt задач и его документация указывают на XML:: LibXSLT, который выглядит довольно хорошим, но у меня нет опыта с ним до сих пор