【问题标题】:Perl returns MSWin32 whereas my laptop is 64-bitPerl 返回 MSWin32 而我的笔记本电脑是 64 位
【发布时间】:2013-01-30 17:11:58
【问题描述】:
print "$^O\n";

返回

MSWin32

但是,我的笔记本电脑是 64 位的。知道 Perl 系统调用是否检索到错误数据(通过其或 Windows 的错误)还是按照设计?

【问题讨论】:

标签: perl windows-7 operating-system windows-7-x64 system-calls


【解决方案1】:

$^O 在 Windows 上始终为 MSWin32

如果你想了解更多关于perl运行的系统,可以使用

use Win32;
print Win32::GetOSDisplayName(), "\n";
print Win32::GetOSName(), "\n";
print Win32::GetOSVersion(), "\n";

如果你想知道 perl 所构建的架构,你可以使用

use Config qw( $Config );
print "$Config{archname}\n";

如果你想知道整数的大小,可以使用

use Config qw( $Config );
print $Config{ivsize}*8, " bits\n";

【讨论】:

    【解决方案2】:

    Win32 只是标准的 Windows API。这与 32 位/64 位处理器或操作系统变体几乎没有联系。

    来自perldoc -v $^O

    在 Windows 平台中,$^O 不是很有帮助:因为它总是“MSWin32”,所以它无法区分 95/98/ME/NT/2000/XP/CE/.NET。使用 Win32::GetOSName() 或 Win32::GetOSVersion()(参见 Win32 和 perlport)来区分变体。

    在我的系统上,它也不是很有帮助;只返回一个普通的linux ;-)

    【讨论】:

    • 我只需要区分操作系统是 Win 还是 Linux,这样 Win32 就可以了(我的脚本在 32 位和 64 位拱门之间没有区别)但它引起了我的注意,所以我想问一下。我在功能上真的不需要Win32::GetOSName(),只是好奇
    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 2019-07-30
    • 2015-10-31
    • 1970-01-01
    相关资源
    最近更新 更多