2

$OSNAME我记得在 Linux中使用过这个变量。

目前我正在 Solaris 上开发一个项目,我需要获取操作系统名称并且该变量在 Solaris 上不起作用。

即使是简单的单行程序也不起作用:

print "OS is $OSNAME\n";

它打印

OS is 

请帮忙。

4

4 回答 4

14

您需要使用该English模块。

$OSNAME实际上是 的别名$^O,你可以$^O不使用English模块使用,但要使用$OSNAME你需要使用English模块。

此外,由于use strict缺少您没有收到任何错误。

始终在您的程序中使用use strict;,它将帮助您捕获这些类型的错误。

所以试试:

use English;
use strict;

print "Operating system is $OSNAME\n";
于 2010-10-01T07:09:44.950 回答
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

你可以print $^O改用。

于 2010-10-01T07:11:59.893 回答
2

如果$OSNAME( $^O) 没有准确包含您需要的信息,请查看Config模块中提供给您的值。

于 2010-10-01T16:25:09.910 回答