hip*_*ail 5 perl 64-bit types scripting-language
Perl长期以来一直是我选择的脚本语言,但我遇到了一个可怕的问题.默认情况下,不支持长(64位)整数.大部分时间的整数只是一个字符串,他们在巨大的文件中搜索工作,但也有很多他们没有工作的地方,如二进制&
,printf
,pack
,unpack
,<<
,>>
.
现在这些可以在更新版本的Perl中工作,但只有在它使用64位整数支持构建时,如果我想在不使用此选项的情况下构建的Perls上运行可移植代码,这无济于事.并且您并不总能在运行代码的系统上控制Perl.
我的问题是Python,PHP和Ruby是否遇到这样的问题,还是它们还依赖于版本和构建选项?
Eri*_*rom 14
高速硬件整数的大小(假设语言具有它们)将始终取决于编译语言解释器(通常为C)的编译器可用的任何大小整数.
如果你需要跨平台/跨版本的大整数支持,Perl pragma use bigint;
就可以解决这个问题.如果您需要更多控制,bigint
则是模块周围的包装器Math::BigInt
.
在use bigint;
加载的范围内,该范围中的所有整数将透明地升级为Math::BigInt
数字.最后,当使用任何类型的大数字库时,一定不要使用像9**9**9
无限的技巧,因为你可能会等待一段时间:)