为什么Perl的$ OSNAME不能在Solaris上运行?

时间:2010-10-01 07:08:27

标签: perl variables operating-system perl-module

我记得在Linux中使用了变量$OSNAME

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

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

print "OS is $OSNAME\n";

打印

OS is 

请帮忙。

4 个答案:

答案 0 :(得分:14)

您需要使用English模块。

$OSNAME实际上是$^O的别名,您可以在不使用$^O模块的情况下使用English,但要使用$OSNAME,您需要使用English use strict 1}}模块。

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

始终在您的程序中使用use English; use strict; print "Operating system is $OSNAME\n"; ,它将帮助您捕获这些错误。

所以试试:

{{1}}

答案 1 :(得分:2)

您可以改为使用print $^O

答案 2 :(得分: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

答案 3 :(得分:2)

如果$OSNAME$^O)未准确包含您需要的信息,请查看Config模块中可用的值。