Perl返回MSWin32,而我的笔记本电脑是64位的
返回Perl返回MSWin32,而我的笔记本电脑是64位的,perl,windows-7,operating-system,windows-7-x64,system-calls,Perl,Windows 7,Operating System,Windows 7 X64,System Calls,返回 print "$^O\n"; 然而,我的笔记本电脑是64位的。你知道Perl系统调用是否检索到错误的数据(通过它或Windows的bug)或者它是按设计的吗?Win32只是标准的Windows API。这与32位/64位处理器或操作系统变体几乎没有联系 从perldoc-v$^O: 在Windows平台上,$^O不是很有用:因为它总是“MSWin32”,所以它不能区分95/98/ME/NT/2000/XP/CE/.NET之间的区别。使用Win32::GetOSName()或Win32::
print "$^O\n";
然而,我的笔记本电脑是64位的。你知道Perl系统调用是否检索到错误的数据(通过它或Windows的bug)或者它是按设计的吗?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
;-) $^O
在Windows上始终是MSWin32
如果您想更多地了解运行perl
的系统,可以使用
MSWin32
use Win32;
print Win32::GetOSDisplayName(), "\n";
print Win32::GetOSName(), "\n";
print Win32::GetOSVersion(), "\n";
use Config qw( $Config );
print "$Config{archname}\n";
如果您想知道构建perl
的体系结构,可以使用
MSWin32
use Win32;
print Win32::GetOSDisplayName(), "\n";
print Win32::GetOSName(), "\n";
print Win32::GetOSVersion(), "\n";
use Config qw( $Config );
print "$Config{archname}\n";
如果您想知道整数的大小,可以使用
MSWin32
use Win32;
print Win32::GetOSDisplayName(), "\n";
print Win32::GetOSName(), "\n";
print Win32::GetOSVersion(), "\n";
use Config qw( $Config );
print "$Config{archname}\n";
我只需要区分操作系统是Win还是Linux,这样Win32就可以了(我的脚本在32位和64位ARCH之间没有区别),但它只是引起了我的注意,所以我想问一下。在功能上,我并不真正需要
Win32::GetOSName()
,只是好奇而已。您可能会发现这也很有趣: