В этом небольшом perl-скрипте с использованием встроенного синтаксического анализатора saxon XSLT:
use Inline::Java;
use warnings;
use XML::Saxon::XSLT2;
open(my $xslt, '<:encoding(UTF-8)', $xslfile) or die $!;
open(my $xml, '<:encoding(UTF-8)', $xmlfile) or die $!;
my $trans = XML::Saxon::XSLT2->new($xslt);
my $output = $trans->transform($xml);
print $output;
Хотелось бы поймать ошибки трансформации от saxon. При запуске скрипта из командной строки ошибки записываются в STDERR. Но как я могу перенаправить сообщение об ошибке в файл внутри сценария perl? Я попробовал Tie :: STDERR, который не работает.
Я пытался перенаправить STDERR с помощью
open my $log_fh, '>>', '/tmp/the-log-file';
*STDERR = $log_fh;
Затем в / tmp / the-log-file регистрируются ошибки perl, но не ошибки saxon.