我在 perl 腳本中有這種語法,但我不知道它是什么意思:
$string.= "$$info{$id}{free}\t";.
我對珍珠很陌生(第一次閱讀 perl 腳本),我沒有找到任何有用的資訊。
uj5u.com熱心網友回復:
$info是一個哈希參考。這是指多級資料結構,第一級鍵由另一個變數設定$id。您的結構可能如下所示:
my $info = {
1 => {
free => 2,
used => 3,
},
2 => {
free => 1,
used => 0,
},
};
在$id這個例子中是1or 2。
您可以在perlreftut中更詳細地了解這一點。
您的代碼從資料結構內部獲取值并將其附加到一個變數$string后跟一個制表符。看起來它正在構建一個制表符分隔的檔案,類似于 CSV 檔案。
uj5u.com熱心網友回復:
根據Perl 取消參考語法,$$info{ $id }也可以寫為$info->{ $id }. (我并不是唯一一個發現后者更清晰的人。)
$info->{ $id }{ free }
簡稱
$info->{ $id }->{ "free" }
這只是遵循鏈接到單個運算式中的兩個哈希元素取消參考:
my $anon = $info->{ $id }; $anon->{ "free" }
HASHREF->{ KEY }用于在給定哈希參考和元素鍵的情況下獲取哈希元素的值。
這意味著應該$info是對哈希的參考。$info->{ $id }獲取值為$idfor key 的元素的值。
同樣,$info->{ $id }/$anon應該是對哈希的參考。$anon->{ "free" }使用 key 獲取元素的值free。
例如,
my $info = {
machine01 => {
free => 100,
used => 200,
},
machine02 => {
free => 50,
used => 450,
},
};
my $id = "machine01";
say $info->{ $id }{ free }; # 100
見perlreftut
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456740.html
