在Perl中优雅地确定系统架构

amp*_*ine 6 architecture perl

我正在寻找一种简单的方法来确定系统是否是Perl 5中的32位或64位.我已经perlvar向后和向前阅读了手册页,并且没有发现包含系统CPU架构的变量(CPU)体系结构Perl编译为将足够接近).这是我最接近的:

chomp (my $arch = `uname -m`);
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更优雅的方法来确定这一点; 我讨厌依赖反引号表达式,因为它们都是瓶颈,往往是不安全的,并且经常(特别是这个例子)打破了跨平台的兼容性.Perl没有理由不应该有这些信息.

mob*_*mob 10

查看Config模块.

也许检查是否$Config{'archname64'}已设置就足够了.

  • 这可能是"你真正想知道什么?"之一.的问题.对于struct en/decoding你可能想要检查`$ Config {alignbytes}`或`$ Config {byteorder}`; 如果你对整数范围感兴趣,你可能需要`$ Config {intsize}`或`$ Config {ivsize}`(我认为这是相对较新的)等等.等等. (7认同)

Ale*_*nii 7

Sys::Info::OS->bitness 方法将确定您的操作系统的"位数".