具有如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)
答案 0 :(得分:1)
Class::HPLOO
存在三个问题(正如我之前提到的那样,自2005年以来就没有更新),这使它在现代Perls中失败了。
As discovered in the previous post,
过时的构造defined (@array)
在lib/Class/HPLOO.pm' and three times in
lib / Class / HPLOO / Base.pm`中使用过一次。自v5.22起已禁止这种构造
当前目录(.
)不再位于@INC
中(我认为从v5.24开始)。因此test.pl
中的行就像
require "test/classtest.pm"
全部都需要重写为
require "./test/classtest.pm"
或更简单的解决方法是放置
use lib '.';
在脚本顶部。
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