我如何对哈希值进行排序并将其计入相关键.
例如:push @ {$ name_hash {$ st_name}},$ end_name;
$VAR1 = 'firstname')';
$VAR2 = [
'lastname1',
'lastname1',
'lastname1',
'lastname2',
'lastname2',
'lastname2',
'lastname3',
'lastname3',
]
Run Code Online (Sandbox Code Playgroud)
我需要表格
`firstname : lastname1 : 3`
`firstname : lastname2 : 3`
`firstname : lastname3 : 2`
Run Code Online (Sandbox Code Playgroud)
我尝试使用一些计数器,但它在启动时失败,我只有多次值或在最后一个值的末尾(在本例中为lastname3).
foreach $n (sort keys %name_hash) {
$ecounter =0; $temp2 = "NA"; $tcount =0; $p =0;
foreach $lastn (sort values @{$name_hash{$n}}) {
$ecounter ++ if ($lastn eq $temp2);
$tcount++;
if (($tcount) > ($ecounter+1) ){
print " $n : $temp2 : $ecounter+1\n";
$ecounter=0; $tcount=1;
$p =1 ;
}
$temp2 = $lastn ;
}
print "$n : $temp2 : $ecounter+1\n" if (!$p);
}
Run Code Online (Sandbox Code Playgroud)
使用哈希计算重复的名称:
#!/usr/bin/perl
use warnings;
use strict;
my %name_hash = (
firstname => [qw[
lastname1 lastname1 lastname1
lastname2 lastname2 lastname2
lastname3 lastname3 ]]);
for my $first_name (sort keys %name_hash) {
my %count;
++$count{$_} for @{ $name_hash{$first_name} };
print "$first_name : $_ : $count{$_}\n" for sort keys %count;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |