chomp(my @unsorted = ()); my @sorted = sort { $a cmp $b } @unsorted; say for @sorted; __DATA__ 1208782,abc 406744,def 367455,abc 283191,mps 226159,abc 197688,rxwz 137875,rxwz 115901,abc 107297,def 99213,mps #### use Data::Dump qw(pp); chomp(my @lines = ()); my $sums = {}; for my $line (@lines) { my ($num,$let) = split ',', $line; $sums->{$let} += $num; } say pp($sums);