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

use*_*596 2 variables perl operating-system perl-module

我记得$OSNAME在Linux 中使用过该变量.

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

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

print "OS is $OSNAME\n";
Run Code Online (Sandbox Code Playgroud)

它打印

OS is 
Run Code Online (Sandbox Code Playgroud)

请帮忙.

cod*_*ict 14

您需要使用该English模块.

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

此外,因为use strict缺少你没有得到任何错误.

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

所以尝试:

use English;
use strict;

print "Operating system is $OSNAME\n";
Run Code Online (Sandbox Code Playgroud)

  • 总是使用英文qw(-no_match_vars); 或者它减慢你的节目速度 (5认同)