有可能有条件地“使用bigint”与Perl?

我知道我可以有条件地在Perl中使用一个模块,但是“pragmas”呢?我的测试显示,使用bigint可能比Perl中的正常数学慢得多,我只需要它来处理64位整数,所以我只想在Perl没有使用64位整数支持的时候使用它,我也是知道如何使用Config模块进行检查.

我尝试了各种各样的事情与eval和BEGIN块,但无法找出一种方式来有条件地使用bigint.我知道我可以使用Math :: BigInt,但是对于bigint和64位的情况,我不能使用单个的codepath.

解决方法

这实际上正常工作:
use Config;
BEGIN {
  if (! $Config{use64bitint}) {
    require bigint;
    bigint->import;
  }
}

不同编译时间之间的交互是复杂的(也许我会回来尝试稍后解释),但是足够的是,由于这里没有字符串eval,所以bigint所设置的标志会持续通过文件的其余部分或阻止你把BEGIN块放在里面.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...