2013-08-21 113 views
0
$stored_var = retrieve("$batch_text"); 
%some_hash= %$stored_var; 

我認爲這是爲了檢索一些存儲的散列。 %$表示什麼?它只是語法還是它有更多的參與意義?關於在Perl中存儲和檢索

store \%batch_hash, "$batch_text"; 

我假設以上是用來存儲散列的。這裏我也有同樣的懷疑關於\%如上

回答

1

%$表示什麼?

$stored_var是散列引用,%$用於對其進行解引用。

store \%batch_hash, "$batch_text"; 

%batch_hash是散列和\%用於傳遞參考,所以在商店子程序中,要傳遞batch_hash散列的參考作爲第一參數和$batch_text變量作爲第二個參數。

1

%$只是解引用引用散列的語法。 看一看here\%用於引用散列。所以store是一個需要用hashref(1.Param)調用的函數。

%some_hash= %$stored_var;部分是將hashref複製到一個新的散列。您需要解除引用,然後才能複製它。

0

%$foo是去引用參考$foo到哈希,所以線

%bar = %$foo; 

是(淺)複製通過一個標量變量引用到另一散列的散列的內容,通過更直接訪問哈希變量。

在某些方面,這是「只是語法」,即只是一種解引用的方式。一個重要的細節是storeretrieve不會直接工作來序列化散列或數組,因此您必須使用對它們的引用(以標量值)。

如果$foo不是對散列的引用,則該行將失敗。