2

$OSNAMELinuxで変数を使用したことを覚えています。

現在、OS名を取得する必要があるSolarisでプロジェクトに取り組んでいますが、その変数はSolarisでは機能していません。

単純な1行のプログラムでも機能しません。

print "OS is $OSNAME\n";

印刷します

OS is 

助けてください。

4

4 に答える 4

14

Englishモジュールを使用する必要があります。

$OSNAMEは実際にはのエイリアスです。モジュール$^Oを使用$^Oせずに使用できますが、使用するにはモジュールを使用する必要があります。English$OSNAMEEnglish

また、use strict欠落しているため、エラーは発生しませんでした。

プログラムで常に使用use strict;してください。この種のエラーを見つけるのに役立ちます。

だから試してみてください:

use English;
use strict;

print "Operating system is $OSNAME\n";
于 2010-10-01T07:09:44.950 に答える
2

代わりに使用できますprint $^O

于 2010-10-01T07:11:59.893 に答える
2

コマンドラインからテストすると、次のようになります。

$ perl -E 'say $OSNAME'

$ perl -Mstrict -E 'say $OSNAME'
Global symbol "$OSNAME" requires explicit package name at -e line 1.
Execution of -e aborted due to compilation errors.
$ perl -Mstrict -MEnglish -E 'say $OSNAME'
linux
于 2010-10-01T08:16:00.100 に答える
2

$OSNAME$^O)に必要な情報が正確に含まれていない場合は、Configモジュールから入手できる値を確認してください。

于 2010-10-01T16:25:09.910 に答える