2

我发现了一些进行以下检查的 Perl 代码:

如屏幕所示

if ($^O eq 'MSWin32')

$^0变量是什么?看起来它包含运行它的机器的体系结构/操作系统,但我不知道这是否是在脚本中其他地方分配它的结果(也许是正则表达式匹配的结果,虽然我看不到任何匹配在该点之前执行的操作),或者该变量是否始终具有与其运行的机器相关的值。

我想检查运行脚本的机器的操作系统和位数,并想知道我是否可以使用 $^0 来帮助我(如果没有,那么我仍然很好奇它是什么)。

我宁愿不发布 Perl 脚本的其他部分,因为它是专有的。

这让我觉得以前应该问过这样的问题,但是由于特殊字符,Google 并没有多大用处(我经常认为无法使用 Google Perl 代码部分导致了它的消亡),而 Stack Overflow 没有也没有任何有用的建议问题。

perlvar页面上没有 $^0 或 $^1 或 $^# 的匹配项,我不相信 $^N 或 $^X 是相关的。

4

1 回答 1

5

它不是零。

它是字母“O”,大写。

perlvar中搜索,当您使用英语OSNAME时,它是变量的长格式名称:

构建此 Perl 副本的操作系统的名称,在配置过程中确定。

没有特殊的“美元插入符号零”变量。

于 2020-05-13T12:29:24.940 回答