Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用perl获得每个类别的唯一成员?_Perl_Hash_Unique - Fatal编程技术网

如何使用perl获得每个类别的唯一成员?

如何使用perl获得每个类别的唯一成员?,perl,hash,unique,Perl,Hash,Unique,我使用哈希来存储成员id。我使用以下验证来避免重复性: if($cases{$type} != $member_id) { $cases{$type} = $member_id; } 在那之后,我想得到每个$type的成员总数。我该怎么做 我尝试了以下操作,但不起作用: scalar(values $cases{$type}); 非常感谢。您当前的方法实际上并不计算给定类型中有多少成员;它只是跟踪最后添加的成员 为保持计数,考虑使用散列的散列;对要添加的每个$member\u id使

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

if($cases{$type} != $member_id) {
    $cases{$type} = $member_id;
}
在那之后,我想得到每个$type的成员总数。我该怎么做

我尝试了以下操作,但不起作用:

scalar(values $cases{$type});

非常感谢。

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

为保持计数,考虑使用散列的散列;对要添加的每个

$member\u id
使用此选项:

$cases{$type}{$member_id} = 1;
散列赋值的值并不重要;这只是一种使用散列键来保持唯一性的方法

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

scalar keys %{$cases{$type}}

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

为保持计数,考虑使用散列的散列;对要添加的每个

$member\u id
使用此选项:

$cases{$type}{$member_id} = 1;
散列赋值的值并不重要;这只是一种使用散列键来保持唯一性的方法

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

scalar keys %{$cases{$type}}

您可以使用
$member\u id
作为键,并使用
grep
查找计数。 存储
$type
类似
$case{$member\u id}=$type

使用以下命令打印计数

print scalar grep $case{$_} == $type, keys %case;

您可以使用
$member\u id
作为键,并使用
grep
查找计数。 存储
$type
类似
$case{$member\u id}=$type

使用以下命令打印计数

print scalar grep $case{$_} == $type, keys %case;

这应该是
标量键%{$cases{$type}}
这应该是
标量键%{$cases{$type}