如何检查我的Perl安装是32位还是64位?

时间:2014-10-02 20:04:09

标签: perl

在Windows上,如何检查我的Perl安装是32位还是64位?

5 个答案:

答案 0 :(得分:17)

我正在阅读问题,询问 Perl 是否编译为64位,而不是Windows或CPU。

可以将Perl配置为使用不同程度的64位。您可以使用Config模块进行查找。

要检查Perl是否编译为使用64位整数,您可以查看Config中的use64bitint条目。

use Config;
print $Config{use64bitint};

define表示是。

还有......

  • use64bitall意味着perl将被编译为使用所有64位,包括64位指针,允许您访问超过2 GB的内存。
  • ivsize表示Perl用于存储整数的字节数,8表示64位。
  • ptrsize是Perl用于存储指针的位数,允许每个进程使用2 gig以上的内存,8表示64位。

公共配置变量及其值可以在perl -V中看到(注意大写字母V)。他们的定义可以在perldoc Config找到。

注意,无论您的操作系统或CPU是32位还是64位,都可以编译Perl以使用64位整数。在32位CPU上,Perl将使用“整数”以外的类型来存储数字,可能是“长整数”。

答案 1 :(得分:16)

如果要检查它是使用32位整数还是64位整数,请使用以下命令:

perl -V:ivsize      # use Config; say $Config{ivsize}
  • 如果返回值为4,则Perl使用32位整数。
  • 如果返回值为8,则Perl使用64位整数。

另请参阅:Answer to "What is the perl equivalent of MAX_INT?"


如果要检查它是使用32位指针还是64位指针,请使用以下命令:

perl -V:ptrsize     # use Config; say $Config{ptrsize}
  • 如果返回值为4,则Perl可以处理4 GB的RAM。
  • 如果返回值为8,则Perl可以解决“无限制”RAM。

如果要检查它是32位程序还是64位程序,请使用以下命令:

perl -V:archname    # use Config; say $Config{archname}
  • 如果返回的值包含x86_64,则为64位进程。
  • 如果返回的值包含x86(但不是x86_64),那么这是一个32位进程。

此值也包含在perl -v的输出中。


注意:您不应该检查use64bitintuse64bitall,因为它们会指示传递给Configure的参数,而不是提供有关实际使用内容的信息。

答案 2 :(得分:2)

只需检查版本/版本:

perl -v

我得到了:

This is perl, v5.8.8 built for msys-64int

Copyright 1987-2006, Larry Wall

...

答案 3 :(得分:2)

log(~0 +1)/log(2)的作用是因为:

  • ~0是“按位不为零” - > UINT_MAX
  • UINT_MAX是2 ^ 32-1或2 ^ 64-1,具体取决于架构(或编译选项)
  • log(2 ^ 32)/ log(2)= 32和log(2 ^ 64)/ log(2)= 64,按设计。

所以基本上这个命令命令perl表示有多少位有UINT_MAX。

$ perl -e "print log(~0 +1)/log(2)" 32 $ perl -V:archname archname='MSWin32-x86-multi-thread';

答案 4 :(得分:-3)

只需使用

log(~0 +1)/log(2) 

...