在Windows系统中,如何检查Perl的安装版本是32位还是64位?
如果您想检查它是否使用32位整数或64位整数,请使用以下内容:
perl -V:ivsize # use Config; say $Config{ivsize}
如果要检查它是否使用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
的参数,而不提供有关实际使用情况的信息。
我在阅读问题,想要问的是Perl是否被编译为64位,而不是Windows或CPU。
Perl可以配置为使用不同程度的64位性能。您可以使用Config模块查找此信息。
要检查Perl是否已编译以使用64位整数,请查看Config中的use64bitint
条目。
use Config;
print $Config{use64bitint};
define
表示“是”。
还有其他的一些配置选项:
use64bitall
表示 Perl 将被编译以使用所有 64 位的功能,包括使用 64 位指针,允许您访问超过 2GB 的内存。ivsize
表示 Perl 用于存储整数的字节数,8 表示 64 位。ptrsize
表示 Perl 用于存储指针的位数,允许您在每个进程中使用超过 2GB 的内存,8 表示 64 位。常用的配置变量及其值可以在 perl -V
(注意 V 大写) 中查看。它们的定义可以在 perldoc Config
中找到。
请注意,您可以将 Perl 编译为使用 64 位整数,而不管您的操作系统或 CPU 是否为 32 位或 64 位。 在 32 位 CPU 上,Perl 将使用类型而不是“整数”来存储数字,可能是“长整数”。
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';
只需检查版本/构建:
perl -v
我得到了:
This is perl, v5.8.8 built for msys-64int
Copyright 1987-2006, Larry Wall
...
perl -v
的输出中的 64int
并不表示一个 64 位程序。虽然 perl -v
通常会告诉您它是一个 32 位还是 64 位进程(包括 x86
或 x86_64
),但您表明它在 msys
上无法正常工作(无论如何都不会告诉您)。 - ikegami只需使用
log(~0 +1)/log(2)
....