#!/usr/bin/perl -w
use strict;
use Data::Dump qw(pp);
my @all_arrays = ([1 .. 20],
[10 .. 30],
[19 .. 40],
);
my %unique_descriptive;
foreach my $num (map{@$_}@all_arrays)
{
$unique_descriptive{$num}{count}++;
push @{$unique_descriptive{$num}{values}}, $num;
}
#print pp(\%unique_descriptive);
# example for num=10
#10 => { count => 2, "values" => [10, 10] },
my @sorted_keys = sort{ $unique_descriptive{$a}{count} <=> $unique_descriptive{$b}{count}
or
$a <=> $b
}keys %unique_descriptive;
foreach my $key (@sorted_keys)
{
printf "%2d=", $key; #make the print out look nice
print pp($unique_descriptive{$key}),"\n";
}
__END__
####
1={ count => 1, "values" => [1] }
2={ count => 1, "values" => [2] }
3={ count => 1, "values" => [3] }
4={ count => 1, "values" => [4] }
5={ count => 1, "values" => [5] }
6={ count => 1, "values" => [6] }
7={ count => 1, "values" => [7] }
8={ count => 1, "values" => [8] }
9={ count => 1, "values" => [9] }
31={ count => 1, "values" => [31] }
32={ count => 1, "values" => [32] }
33={ count => 1, "values" => [33] }
34={ count => 1, "values" => [34] }
35={ count => 1, "values" => [35] }
36={ count => 1, "values" => [36] }
37={ count => 1, "values" => [37] }
38={ count => 1, "values" => [38] }
39={ count => 1, "values" => [39] }
40={ count => 1, "values" => [40] }
10={ count => 2, "values" => [10, 10] }
11={ count => 2, "values" => [11, 11] }
12={ count => 2, "values" => [12, 12] }
13={ count => 2, "values" => [13, 13] }
14={ count => 2, "values" => [14, 14] }
15={ count => 2, "values" => [15, 15] }
16={ count => 2, "values" => [16, 16] }
17={ count => 2, "values" => [17, 17] }
18={ count => 2, "values" => [18, 18] }
21={ count => 2, "values" => [21, 21] }
22={ count => 2, "values" => [22, 22] }
23={ count => 2, "values" => [23, 23] }
24={ count => 2, "values" => [24, 24] }
25={ count => 2, "values" => [25, 25] }
26={ count => 2, "values" => [26, 26] }
27={ count => 2, "values" => [27, 27] }
28={ count => 2, "values" => [28, 28] }
29={ count => 2, "values" => [29, 29] }
30={ count => 2, "values" => [30, 30] }
19={ count => 3, "values" => [19, 19, 19] }
20={ count => 3, "values" => [20, 20, 20] }
####
#!/usr/bin/perl -w
use strict;
use 5.010; #for new //= operator
use Data::Dump qw(pp);
my @all_arrays = ([1 .. 20],
[10 .. 30],
[19 .. 40],
);
my @unique_descriptive;
foreach my $num (map{@$_}@all_arrays)
{
$unique_descriptive[$num]++; #simple peg counter
}
# add a column to the 2-D array with row number
# undef counts as freq of zero, the //=0 does that
my $i=0;
@unique_descriptive = map{[$i++,$_//=0]}@unique_descriptive;
@unique_descriptive = sort{ $a->[1] <=> $b->[1] #by freq
or
$a->[0] <=> $b->[0] #by peg number
}@unique_descriptive;
foreach my $row (@unique_descriptive)
{
print "num = $row->[0] \tfreq=$row->[1]\n" if ($row->[1] > 0);
}
####
__END__
num = 1 freq=1
num = 2 freq=1
num = 3 freq=1
num = 4 freq=1
num = 5 freq=1
num = 6 freq=1
num = 7 freq=1
num = 8 freq=1
num = 9 freq=1
num = 31 freq=1
num = 32 freq=1
num = 33 freq=1
num = 34 freq=1
num = 35 freq=1
num = 36 freq=1
num = 37 freq=1
num = 38 freq=1
num = 39 freq=1
num = 40 freq=1
num = 10 freq=2
num = 11 freq=2
num = 12 freq=2
num = 13 freq=2
num = 14 freq=2
num = 15 freq=2
num = 16 freq=2
num = 17 freq=2
num = 18 freq=2
num = 21 freq=2
num = 22 freq=2
num = 23 freq=2
num = 24 freq=2
num = 25 freq=2
num = 26 freq=2
num = 27 freq=2
num = 28 freq=2
num = 29 freq=2
num = 30 freq=2
num = 19 freq=3
num = 20 freq=3