【问题标题】:PDF::Table Perl module not working on Debian JessiePDF::Table Perl 模块不适用于 Debian Jessie
【发布时间】:2018-01-20 13:44:54
【问题描述】:

当我尝试在 Debian Jessie (Perl 5.20) 上使用 PDF::Table 模块时,我收到以下消息:

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 上使用。我在这个错误中发现的唯一documentation 谈到了 Perl 升级,但没有提供任何解决方案来解决这个问题。我使用的脚本是 CPAN 上的 PDF::Table 主要示例:

 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 5.20 上的另一个 Perl 模块是否有可能出现同样的问题?非常感谢您的帮助!

【问题讨论】:

  • 您能检查一下安装的 PDF::Table 是什么版本吗?该特定版本可能已损坏。运行perl -MPDF::Table\ 99(包括空格)。它会抱怨它只有一个较低的版本。
  • 您看到的问题was fixed in version 0.9.10。您可以从 CPAN 手动安装最新版本,或者为您的项目使用 local::lib,这样它就不会干扰系统 Perl(尽管对于该模块,我认为这不是问题,因为它没有任何依赖项除了鲤鱼,可能会更新)。
  • 嗨。我在 perl 5.22 上尝试了 PDF::API2 版本 2.025 和 PDF::Table 版本 0.9.6 并且代码似乎可以工作(写好的并生成一个 pdf 文件),尽管有消息(在我看来这只是一个警告) )。
  • 是的,it's a warning。但是你仍然可以更新。您不必必须为您的 Perl 模块使用系统包。如果需要,您可以安装较新的版本。
  • 服务器上安装的PDF::Table版本为0.9.6。将最新版本 (0.9.14) 安装为 lib 解决了 Perl 5.20 上的问题。非常感谢你们两位的宝贵时间!

标签: perl perl-module debian-jessie


【解决方案1】:

您看到的问题是警告。这很烦人,但可以忽略。该模块已修复in version 0.9.10。您可以直接从 CPAN 安装它,而不是使用系统包,然后警告就会消失。

【讨论】:

    猜你喜欢
    • 2015-08-27
    • 2015-11-29
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2019-05-18
    • 2023-03-21
    相关资源
    最近更新 更多