2
print "$^O\n";

戻り値

MSWin32

ただし、私のラップトップは64ビットです。Perlシステムコールが(そのまたはWindowsのバグによって)間違ったデータを取得するのか、それとも設計どおりであるのか、何か考えはありますか?

4

2 に答える 2

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;-)

于 2013-02-14T19:48:22.293 に答える
3

$^Oは常にMSWin32Windows 上にあります。

実行されているシステムについて詳しく知りたい場合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";
于 2013-02-14T20:46:33.440 に答える