Perl 中的美元插入符零变量 ( $^0 ) 是什么?

M_M*_*M_M 2 perl special-variables

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

如屏幕所示

if ($^O eq 'MSWin32')
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

too*_*lic 5

它不是零。

它是字母“O”,大写。

perlvar中搜索OSNAME,这是使用英文时变量的长格式名称:

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

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