1

有没有办法,给定 CPAN 上的一个模块来确定该模块是否可以在Perl 编译器中运行, ( perlcc)

如果我尝试编译测试套件本身,运行./t文件不会产生任何输出。

这里是test.t

#!/usr/bin/perl
use Test::More;  
ok(1);
done_testing;

如果我运行它,我会得到,

$ perl ./t/test.t 
ok 1
1..1

但是,如果我使用它编译perlcc ./t/test.t并运行它,./t/test我将没有输出。

有没有一种方法可以测试模块与 Perl 编译器的兼容性?

4

1 回答 1

1

答案是:

是的,用 perlcc 编译并运行它,看看它是否有效。

您还可以在https://github.com/rurban/perl-compiler/或使用编译器检查 log.modules* 列表,以查看您的模块是否与您的特定 perl 版本一起编译。它取决于版本,线程与否 ( nt) 或 cperl ( c) 或 perl5。

直到 5.24 左右,大约 95% 的所有模块,以及完整的 perl5 核心测试套件都测试良好。后来 p5p 打破了它并拒绝修复它的回归。这就是你必须使用 cperl 的原因,它修复了 perl5 的错误并得到了支持。

于 2021-02-17T10:28:19.817 回答