'$ :: n'对perl意味着什么?

use*_*696 7 perl

你知道吗'$ :: n;' 意思?代码部分如下所示.

use JSON::XS;
# ...
open (YI, "| $cmd");
my $msg = { test => test };
my $emsg = encode_json($msg);
print YI "$msg_inject\n" unless $::n;
close YI;`
Run Code Online (Sandbox Code Playgroud)

我记得我以前也遇到过$ :: v.什么是$ :: v?它有额外的用途吗?

我只知道$:是perl语句的保留字,更多行填充字段.

最好的祝福,

TWLMD.

Сух*_*й27 18

$::n与$ n驻留在包中的位置相同$main::n或相同.$nmain::

这种表示法忽略了最终的词汇(定义my)定义$n,即.

perl -Mstrict -we 'our $n=3; my $n=1; print $::n'
Run Code Online (Sandbox Code Playgroud)

输出是 3

  • (有趣的花絮:`main ::`实际上只是对空命名空间的引用,所以`$ :: n`,`$ main :: n`,`$ main :: main :: n`,`$ main: :main :: main :: n`等都是var.) (3认同)