在Windows上,如何检查我的Perl安装是32位还是64位?
答案 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}
另请参阅:Answer to "What is the perl equivalent of MAX_INT?"
如果要检查它是使用32位指针还是64位指针,请使用以下命令:
perl -V:ptrsize # use Config; say $Config{ptrsize}
如果要检查它是32位程序还是64位程序,请使用以下命令:
perl -V:archname # use Config; say $Config{archname}
x86_64
,则为64位进程。x86
(但不是x86_64
),那么这是一个32位进程。此值也包含在perl -v
的输出中。
注意:您不应该检查use64bitint
或use64bitall
,因为它们会指示传递给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)
的作用是因为:
所以基本上这个命令命令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)
...