Я считаю, что это может быть ошибка в модуле, который я использую, или я просто что-то упускаю из виду.
Мой код такой:
#!/usr/bin/perl
use strict;
use warnings;
use CAM::PDF;
use CAM::PDF::Annot;
sub main()
{
my $pdf = CAM::PDF::Annot->new( 'b.pdf' );
my $otherDoc = CAM::PDF::Annot->new( 'b_an.pdf' );
my $page = 1;
my %refs;
my @list = @{$pdf->getAnnotations($page)};
for my $annotRef (@list){
$otherDoc->appendAnnotation( $page, $pdf, $annotRef, \%refs);
}
$otherDoc->output('pdf_merged.pdf');
}
exit main;
Этот код был взят почтинепосредственно из синопсиса, найденного на странице CPAN модуля: http://metacpan.org/pod/CAM::PDF::Annot
Проблема возникает, когда Я запускаю скрипт, используя ДВА PDF-файла с аннотациями.Использование двух PDF без аннотаций работает.Запускается использование одного PDF с аннотациями и одного PDF без аннотаций.Ошибка появляется только в том случае, если в обоих файлах pdf есть аннотации.
Ошибка : «Невозможно использовать строку (« 46 ») в качестве ссылки ARRAY, в то время как« строгие ссылки »используются в /usr / opt / perl5 / lib / site_perl / 5.10.1 / CAM / PDF / Annot.pm строка 195 "
Строка 195 файла Annot.pm:
push @{$annots->{value}}, $pupRef;
Annot.pmнаходится внутри модуля CAM :: PDF :: Annot.
Будем весьма признательны за любые рекомендации по исправлению этой проблемы!
PS При ошибке "string (" x ")" x означаетвсегда число, и, кажется, меняется в зависимости от PDF и аннотаций в PDF.И я постараюсь добавить любую другую информацию, которая вам понадобится, чтобы понять это!