2014-01-08 35 views
7

你知道什麼「$ :: 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;` 

我remmeber,我也遇到過$ :: v。什麼是$ :: v?它有額外的用法嗎?

我只知道$:是一個perl語句的保留字,有更多的行正在填充字段。

此致敬禮,

TWLMD。

+0

如果你是負責這一塊的代碼說明的,它有相當多的問題:二ARG打開和使用裸詞來存儲文件句柄。請參閱當前5.19開發版本中的新perlopentut,以瞭解如何正確使用它。 –

回答

18

$::n$main::n相同或者只是$n其中$ n位於main::包中。

這樣的符號忽略了最終的詞法(定義爲my$n的定義,即。

perl -Mstrict -we 'our $n=3; my $n=1; print $::n' 

輸出3

+3

(有趣的小技巧:'main ::'實際上只是對空名稱空間的引用,所以'$ :: n','$ main :: n','$ main :: main :: n','$ main :: main :: main :: n'等都是相同的變種。) – ikegami