perl模块类别:: HPLOO v0.23安装问题#2

时间:2018-08-25 23:01:33

标签: perl module install

具有如perl module Class::HPLOO v0.23 install issue中所述的确切问题,我试图通过编辑为mWebView.setDownloadListener(new DownloadListener() { public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLengt[h) { Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i); } }); 并尝试重建模块来纠正defined(@array)问题。但是我继续得到以下回报:

(@array)

2 个答案:

答案 0 :(得分:1)

Class::HPLOO存在三个问题(正如我之前提到的那样,自2005年以来就没有更新),这使它在现代Perls中失败了。

  1. As discovered in the previous post, 过时的构造defined (@array)lib/Class/HPLOO.pm' and three times in lib / Class / HPLOO / Base.pm`中使用过一次。自v5.22起已禁止这种构造

  2. 当前目录(.)不再位于@INC中(我认为从v5.24开始)。因此test.pl中的行就像

    require "test/classtest.pm"
    

全部都需要重写为

    require "./test/classtest.pm"

或更简单的解决方法是放置

    use lib '.';

在脚本顶部。

  1. lib/Class/HPLOO.pm的第1077行有一个正则表达式,带有“未转义的左括号”

      $sub =~ s/(\S)( {) (\S)/$1$2\n$FIRST_SUB_IDENT  $3/gs ;
    

{是一个正则表达式元字符,并且从v5.22开始,在不表示数量的情况下使用它是非法的。如错误消息所示,解决方法是转义。

      $sub =~ s/(\S)( \{) (\S)/$1$2\n$FIRST_SUB_IDENT  $3/gs ;

对从CPAN下载的代码进行以下三处更改,该模块应基于现代Perls构建。如果您觉得有帮助,可以提交错误报告(如果需要,可以链接到此帖子),甚至可以将补丁程序与电子邮件一起发送到bug-Class-HPLOO@rt.cpan.org

答案 1 :(得分:0)

今天遇到了这个问题,因此我按照上面的答案进行了修复。如果有人想节省时间。

我用更改创建一个仓库。 https://github.com/swuecho/Class_HPLOO.git

相关问题