Ошибка в моем Perl-скрипте, поступающем из модуля CAM :: PDF :: Annot.Не знаю почему - PullRequest
1 голос
/ 12 марта 2011

Я считаю, что это может быть ошибка в модуле, который я использую, или я просто что-то упускаю из виду.

Мой код такой:

#!/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.И я постараюсь добавить любую другую информацию, которая вам понадобится, чтобы понять это!

1 Ответ

1 голос
/ 12 марта 2011

Всякий раз, когда у меня возникают проблемы с модулем CPAN, я захожу на его веб-страницу, чтобы попытаться оценить его качество и посмотреть, не сообщалось ли о каких-либо ошибках.

http://search.cpan.org/~donatoaz/CAM-PDF-Annot-0.06 показывает следующие подозрительные результаты:

CPAN Testers PASS (2)   FAIL (168)   NA (49) 

Удивительно, что вы смогли установить модуль. Никто не сообщал об ошибках, но есть явно серьезная проблема с кодом. Похоже, что автору либо не известны отчеты тестировщика (которые были отправлены на его адрес электронной почты CPAN более года), либо он прекратил их обслуживание.

Вы можете отправить сообщение об ошибке, чтобы о вашей проблеме знали хотя бы другие.

Я понимаю, что это не отвечает на ваш вопрос о том, как решить проблему, но даже если вы идентифицируете исправление, автор может не применить его (в этом случае кто-то может начать процесс становления со-помощником) .

...