有關在Perl中推送到多維散列的快速問題。我有以下變量:在Perl中使用多維哈希?
%pids #name of hash
$pid = 24633 #key of the has
$time 00:0 #time reference
$line #has a line full of data
我從$行輸入$ pid和$ time。如果鍵24633與參考元素05:3一起存在,則將該行添加到05:3並使用05:3作爲鍵。
的PID {24633} {05:3}
我已經試過:
if ($pids{$pid}{$time}){
@{$pids{$pid}{$time}} -> $line;
}
我也試過這樣:
if ($pids{$pid}{$time}){
push @{$pids{$pid}{$time}}, $line;
但它不斷給我一個「 「當它試圖推動時,不是HASH參考。有什麼建議麼?謝謝!
這是我正在創建的哈希:
foreach my $key (keys %pids){
if ($key =~ $mPID){
push @messages, $line;
}
}
這裏的哈希結構:
$VAR1 = {
'17934' => [
'14:3'
],
'17955' => [
'13:3'
],
'24633' => [
'05:3'
],
'6771' => [
'04:1'
],
'7601' => [
'06:0'
],
};
你有一個數組哈希表,但您嘗試使用它作爲哈希散列。你的代碼也與這個問題無關,因爲它沒有顯示你如何構建你的散列。 – TLP
我已經包括瞭如何建立它,謝謝 – cycloxr
不,你沒有。您已經包括瞭如何使用散列來嘗試構建一個數組,而當前代碼將使用未定義的值填充數組。 (因爲你使用'$ key',但是存儲'$ line'。) – TLP