我用散列來存儲成員id。我使用以下驗證避免了雙重性:如何使用perl獲得每個類別的唯一成員?
if($cases{$type} != $member_id) {
$cases{$type} = $member_id;
}
之後,我想通過每個$類型獲取成員總數。我怎樣才能做到這一點?
我嘗試以下,但不工作:
scalar(values $cases{$type});
非常感謝。
我用散列來存儲成員id。我使用以下驗證避免了雙重性:如何使用perl獲得每個類別的唯一成員?
if($cases{$type} != $member_id) {
$cases{$type} = $member_id;
}
之後,我想通過每個$類型獲取成員總數。我怎樣才能做到這一點?
我嘗試以下,但不工作:
scalar(values $cases{$type});
非常感謝。
您目前的方法實際上並不計算給定類型中有多少個成員;它只是跟蹤最後一個成員添加的內容。
要保持計數,請考慮使用哈希散列;使用這個爲每個$member_id
你添加:
$cases{$type}{$member_id} = 1;
散列分配的值並不重要;這只是一種使用散列鍵來保持唯一性的方法。
然後,爲了獲得成員的數量對於一個給定類型,使用
scalar keys %{$cases{$type}}
您可以使用$member_id
作爲密鑰,並用grep
找到計數。 存儲$type
像$case{$member_id} = $type
使用以下打印計數。
print scalar grep $case{$_} == $type, keys %case;
這應該是'標量鍵%{$ cases {$ type}}' –
謝謝!有一個brainfart。 :-) –