perl - 是否可以使用 Perl 有条件地 "use bigint"?

标签 perl conditional biginteger

我知道我可以有条件地在 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/

相关文章:

perl - Powershell主机文件编辑

sql - 重用带有更改变量的 SQL 表达式

python - 如何有条件地从 Pandas 系列中选择项目

javascript - JS从字符串中解析出错误的数字

perl - PDL::Core 和 PDL::Core 之间的区别 ':Internal'

regex - [Perl] : Read directory and files, 和正则表达式

java - Java中两个BigIntegers的关系操作

c# - BigInteger/BigRational 转换为 double 和返回的问题

SSIS条件拆分 bool 结果

swift - 对 Hashable 的条件一致性