我正在初始化一个无穷大的算法列表.写$x = 9 ** 9 ** 9感觉不直观,而且我可能想在未来使用BigInt. 1/0抛出一个错误.
什么是规范的方式来获得信息?
解决方法
您可以使用特殊字符串“inf”:
perl -E'say "inf" + 1' inf perl -E'say 1 / "inf"' 0
等等.
其他特殊字符串包括inf,-inf,nan.当然这也适用于bignum或bigint pragmas.但是,这些编译指示文件导出等效函数inf和NaN,以便您可以使用barewords.
编辑
正如@ikegami指出的那样,没有一个模块似乎没有一种实现真正无限的便携式方式.我刚刚穿过这个interesting perlmonks thread,但并不会让人困惑.也许最好的解决方案是从开始接受性能损失并使用大的{num,int,rat},但在不需要的范围内不使用大的{num,rat}.