为什么 Perl 的 $OSNAME 不能在 Solaris 上工作?
我记得在 Linux 中使用过变量 $OSNAME
。
目前我正在 Solaris 上开展一个项目,我需要获取操作系统名称,但该变量在 Solaris 上不起作用。
即使是简单的一行程序也不起作用:
print "OS is $OSNAME\n";
它会打印
OS is
Please help。
I remember having used the variable $OSNAME
in Linux.
Currently I'm working on a project on Solaris where I need to get the OS name and that variable is not working on Solaris.
Even a simple one line program does not work:
print "OS is $OSNAME\n";
it prints
OS is
Please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您需要使用
English
模块。$OSNAME
实际上是$^O
的别名,您可以使用$^O
而不使用English
模块,但是要使用$OSNAME
,您需要使用English
模块。此外,由于缺少
use strict
,因此您没有收到任何错误。始终在程序中使用
use strict;
,它将帮助您捕获此类错误。所以尝试:
You need to use the
English
module.$OSNAME
is actually an alias for$^O
, you can use$^O
without usingEnglish
module but to use$OSNAME
you need to use theEnglish
module.Also since
use strict
is missing you did not get any errors.Always use
use strict;
in your program, it will help you catch these kinds of errors.So try:
您可以使用
print $^O
来代替。You can use
print $^O
instead.从命令行测试东西,我得到:
Testing stuff from the command line, I get:
如果
$OSNAME
($^O
) 没有准确包含您需要的信息,请查看 配置 模块。If
$OSNAME
($^O
) doesn't contain precisely the information you need, take a look at the values available to you from the Config module.