Perl 如何检查Mac OS是32位还是64位?

Perl 如何检查Mac OS是32位还是64位?,perl,macros,Perl,Macros,我想确定Mac OS是32位还是64位 谁能帮我写下Perl脚本?一种可能是调用“arch” 我刚才快速键入的脚本如下所示: #!/usr/bin/perl -w $arch=`arch`; print $arch; 但是,当我在终端命令行中键入“arch”时,我得到的输出是“i386”。我的Mac Pro tower支持64位(有些应用程序(如果不是全部的话)运行在64位模式下),所以我不知道为什么我没有看到“x86\u 64”输出。我不是perl程序员,但是试着在最大32位整数上加1,然后

我想确定Mac OS是32位还是64位


谁能帮我写下Perl脚本?

一种可能是调用“
arch

我刚才快速键入的脚本如下所示:

#!/usr/bin/perl -w
$arch=`arch`;
print $arch;

但是,当我在终端命令行中键入“
arch
”时,我得到的输出是“
i386
”。我的Mac Pro tower支持64位(有些应用程序(如果不是全部的话)运行在64位模式下),所以我不知道为什么我没有看到“
x86\u 64
”输出。

我不是perl程序员,但是试着在最大32位整数上加1,然后根据溢出值对其进行检查怎么样?如果等于,则为32位…

您可以检查
uname-a
的输出,并查看其结尾是否显示
i386
x86\u 64

#! /usr/bin/env perl

use strict;
use warnings;
use feature qw(say);
no warnings qw(uninitialized);

if (not -x "/usr/bin/uname") {
    say "Can't determine system bit mode: uname command not found";
}
else {
    chomp ( my $arch_type = qx(/usr/bin/uname -a) );
    if (not $arch_type) {
        say "Can't determine system bit mode";
    }
    elsif ($arch_type =~ /x86_64$/) {
        say "System is in 64 bit mode";
    }
    else {
        say "System is in 32 bit mode: $arch_type";
    }
}

你想要什么还不清楚

要查找用于
perl
的指令集,可以使用以下命令:

$ perl -V:myarchname
myarchname='x86_64-linux';
  $ perl -V:ivsize
  ivsize='4';
(与i686 linux相对)

要查找
perl
使用的整数的大小,可以使用以下命令:

$ perl -V:myarchname
myarchname='x86_64-linux';
  $ perl -V:ivsize
  ivsize='4';
(与
8
相反)

可以从Perl中访问这些值,如下所示:

use Config qw( %Config );
say $Config{myarchname};
say $Config{ivsize};