如何在 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
我使用 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