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

问题描述:

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

+1

你为什么想知道?正如2个答案所反映的,32位或64位可能意味着不只一件事;目前尚不清楚你究竟在问什么。 – ysth 2014-10-02 20:52:41

+0

来到这里寻找同一个问题的答案。在我的情况下,我为这两个拱都有二进制模块,并且需要动态加载一个模块。 – 2016-08-12 15:20:39

+0

只需要解释log(〜0 +1)/ log(2):〜0 +1就可以得到最大整数并且log(N)/ log(2)得到N的基数为2的对数。参见perldoc perlop和perldoc - f日志。 – 2017-01-30 16:16:44

只需选中版本/编译:

perl -v 

而且我得到了:

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

Copyright 1987-2006, Larry Wall 

... 
+2

'perl -v'输出中的'64int'不表示64位程序。虽然'perl -v'通常会告诉你它是32位还是64位进程(通过包括'x86'或'x86_64'),你表明它不起作用(它不会告诉你任何一种方式)为'msys'。 – ikegami 2014-10-03 03:22:01

我读的问题要问,如果的Perl编译64位,如果不是Windows或CPU是。

可以将Perl配置为使用不同程度的64位性。你可以使用Config模块来查看它。

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

use Config; 
print $Config{use64bitint}; 

define表示是。

还有...

  • use64bitall意的perl将被编译使用所有的64位内斯是可以的,其中包括64个指针允许您访问超过2个演出内存。
  • ivsize指示Perl将用来存储整数的字节数,8表示64位。
  • ptrsize Perl将使用多少位来存储指针,它允许每个进程使用2个以上的内存,8位表示64位。

常见的配置变量和它们的值可以在perl -V(注意大写字母V)中看到。他们的定义可以在perldoc Config找到。

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

如果您要检查,如果它使用32位整数或64位整数,使用以下命令:

perl -V:ivsize  # use Config; say $Config{ivsize} 
  • 如果返回的值是4,你的Perl使用32位整数。
  • 如果返回的值是8,那么Perl会使用64位整数。

如果您要检查,如果它使用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而不是提供什么实际使用的信息。

只需使用

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

....

+4

这可能会使用更多的解释为什么它的工作原理。 – 2015-01-04 07:44:42