如何在 perl 中删除 Data::Dumper 中每个唯一编号的标题名称?

How can I remove the title name of each unique number in Data::Dumper in perl?

我使用 Data::Dumper 来捕获每个元素中的唯一编号。

#!perl

use warnings;
use strict;
use Data::Dumper;
$Data::Dumper::Sortkeys = 1;

my @names = qw(A A A A B B B C D);
my %counts;
$counts{$_}++ for @names;
print Dumper (\%counts);

exit;

这是输出。

$VAR1 = {
          'A' => 4,
          'B' => 3,
          'C' => 1,
          'D' => 1
        };

如何删除每个唯一编号的标题名称以获得这种格式的输出?

$VAR1 = { 4 ,3 ,1 ,1 }

假设您希望按降序排列计数,您可以使用以下内容:

printf "$VAR1 = { %s};\n",
   join ',', 
      map "$_ ",
         sort { $b <=> $a }
            values(%counts);

如果您希望对计数进行按键排序,

printf "$VAR1 = { %s};\n",
   join ',', 
      map "$counts{$_} ",
         sort
            keys(%counts);

无论哪种方式,这都是一种非常奇怪的格式。方括号比大括号更有意义。

获得理想结果的多种方法之一

use strict;
use warnings;

use feature 'say';

my @names = qw( A A A A B B B C D );

my %counts;

$counts{$_}++ for @names;

my @values = map { $counts{$_} } sort keys %counts;

say join(',', @values);

输出

4,3,1,1