Когда я пытаюсь использовать PDF::Table на Debian Jessie (Perl 5.20), я получаю следующее сообщение:
Useless use of greediness modifier '?' in regex; marked by <-- HERE in m/(\S{20}? <-- HERE )(?=\S)/ at /usr/share/perl5/PDF/Table.pm line 370.
Этот модуль отлично работает в Debian Wheezy (с Perl 5.014002), но обновление Perl 5.20, кажется, делает его непригодным для использования в Debian Jessie. Единственная документация, которую я нашел по этой ошибке, говорит о Perl обновить, но не дает никакого решения, чтобы исправить это. Сценарий, который я использую, — это основной пример PDF::Table на CPAN:
use strict;
use warnings;
use PDF::API2;
use PDF::Table;
my $pdftable = new PDF::Table;
my $pdf = new PDF::API2(-file => "table_of_lorem.pdf");
my $page = $pdf->page;
# some data to layout
my $some_data =[
["1 Lorem ipsum dolor",
"Donec odio neque, faucibus vel",
"consequat quis, tincidunt vel, felis."],
["Nulla euismod sem eget neque.",
"Donec odio neque",
"Sed eu velit."],
#... and so on
];
my $left_edge_of_table = 50;
# build the table layout
$pdftable->table(
# required params
$pdf,
$page,
$some_data,
x => $left_edge_of_table,
w => 495,
start_y => 500,
start_h => 300,
# some optional params
next_y => 750,
next_h => 500,
padding => 5,
padding_right => 10,
background_color_odd => "gray",
background_color_even => "lightblue", #cell background color for even rows
);
$pdf->saveas("table_of_lorem.pdf");
print "Content-type: text/html\n\n";
print "Ok";
Мой хостер только говорит, что я должен "адаптировать свой код"... Не могли бы вы помочь мне найти правильный способ сделать это? Я заметил эту ошибку только при использовании PDF::Table, но возможна ли такая же проблема с другим модулем Perl в Perl 5.20? Спасибо большое за помощь!
perl -MPDF::Table\ 99
(включая пробел). он будет жаловаться, что у него есть только более низкая версия. - person simbabque   schedule 20.01.2018