1

我使用哈希来存储成员 ID。我使用以下验证来避免重复:

if($cases{$type} != $member_id) {
    $cases{$type} = $member_id;
}

之后,我想按每个 $type 获取成员总数。我怎样才能做到这一点?

我尝试了以下但不工作:

scalar(values $cases{$type});

非常感谢。

4

2 回答 2

1

您当前的方法实际上并没有计算给定类型中有多少成员;它只是跟踪最后添加的成员是什么。

要保持计数,请考虑使用 hash-of-a-hash;对每个$member_id要添加的内容使用它:

$cases{$type}{$member_id} = 1;

哈希分配的值无关紧要;这只是一种使用哈希键来保持唯一性的方法。

然后,要获取给定类型的成员数,请使用

scalar keys %{$cases{$type}}
于 2013-08-22T18:04:58.667 回答
0

您可以$member_id用作键并用于grep查找计数。存储之$type类的$case{$member_id} = $type

使用以下内容打印计数。

print scalar grep $case{$_} == $type, keys %case;
于 2013-08-22T19:29:56.443 回答