2013-02-14 150 views
2
print "$^O\n"; 

回报的Perl返回MSWin32而我的笔记本电脑是64位

MSWin32 

然而,我的笔记本电脑是64位的。任何想法,如果Perl系统调用检索错误的数据(由其或Windows的错误)或是它的设计?

+0

downvote,why ? – amphibient 2013-02-14 19:43:52

+3

你可能会发现这个有趣的:http://stackoverflow.com/a/2030280/329921 – 2013-02-14 20:01:44

回答

5

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

perldoc -v $^O

在Windows平台上,$^O不再是非常有帮助的:因为它总是 “MSWin32”,它并没有告诉之间的差额95/98/ME/NT/2000 /XP/CE/.NET。使用Win32 :: GetOSName()或Win32 :: GetOSVersion()(请参阅Win32和perlport)来区分变体。

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

+1

我只需要区分操作系统是Win还是Linux,所以Win32是好的(我的脚本在32和64位拱),但它只是引起我的注意,所以我想问。我真的不需要'Win32 :: GetOSName()'功能,只是好奇 – amphibient 2013-02-14 20:01:12

3

$^O在Windows上始终为MSWin32

如果您想了解更多关于这perl运行,你可以,如果你想知道哪个perl建建筑使用

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

系统,你可以使用

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

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

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