我知道我可以有条件地在 Perl 中使用一个模块,但是“pragmas”呢?我的测试表明 use bigint
可能比 Perl 中的普通数学要慢得多,我只需要它来处理 64 位整数,所以我只想在 Perl 不支持 64 位整数支持时使用它,我也知道如何检查使用Config
模块。
我用 eval
尝试了各种方法和 BEGIN
block ,但无法找到有条件地使用 bigint 的方法。我知道我可以使用 Math::BigInt
但是对于 bigint 和 64 位情况,我不能使用单个代码路径。
最佳答案
这实际上工作得很好:
use Config;
BEGIN {
if (! $Config{use64bitint}) {
require bigint;
bigint->import;
}
}
不同编译时间之间的交互很复杂(也许我稍后会回来尝试解释它)但足以说明由于这里没有字符串 eval,bigint 设置的标志将持续到文件的其余部分或将 BEGIN block 放入其中的 block 。
关于perl - 是否可以使用 Perl 有条件地 "use bigint"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5310605/