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

Raj*_*Raj 8 perl

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

Sch*_*ern 17

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

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

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

use Config;
print $Config{use64bitint};
Run Code Online (Sandbox Code Playgroud)

define 表示是.

还有...

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

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

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


ike*_*ami 17

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

perl -V:ivsize      # use Config; say $Config{ivsize}
Run Code Online (Sandbox Code Playgroud)
  • 如果返回值为4,则Perl使用32位整数.
  • 如果返回值为8,则Perl使用64位整数.

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

perl -V:ptrsize     # use Config; say $Config{ptrsize}
Run Code Online (Sandbox Code Playgroud)
  • 如果返回值为4,则Perl可以处理4 GB的RAM.
  • 如果返回值为8,则Perl可以处理"无限制"RAM.

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

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

该值也包含在输出中perl -v.


注意:您不应该检查use64bitintuse64bitall因为这些指示传递了哪些参数,Configure而不是提供有关实际使用内容的信息.


Pet*_*Guo 1

只需检查版本/构建:

perl -v
Run Code Online (Sandbox Code Playgroud)

我得到了:

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

Copyright 1987-2006, Larry Wall

...
Run Code Online (Sandbox Code Playgroud)

  • “perl -v”输出中的“64int”并不表示 64 位程序。虽然“perl -v”通常会告诉您它是 32 位还是 64 位进程(通过包含“x86”或“x86_64”),但您表明它不起作用(它不会告诉您任何一种方式)对于“msys”。 (2认同)