use warnings;
use strict;
use Data::Dumper;
my @CELLS=( 'A-1', 'A-2', 'A-3', 'A-4', 'B-5', 'B-6', 'C-7', 'C-8');
my %hash;
for (@CELLS) {
/^(.*)-(\d+)$/ and push @{ $hash{$1} }, $2
}
print STDERR "hash DUMPER:\n", Dumper(\%hash), "\n";
####
use v6;
my @CELLS= 'A-1', 'A-2', 'A-3', 'A-4', 'B-5', 'B-6', 'C-7', 'C-8';
my %hash;
%hash.push: @CELLS.map: *.split('-');
say %hash.perl;
####
use v6;
my @CELLS= 'A-1', 'A-2', 'A-3', 'A-4', 'B-5', 'B-6', 'C-7', 'C-8';
my %hash = @CELLS.map({ my ($k, $v) = .split('-'); $k => $v})\
.categorize(*.key)\ # group by key
.map({; .key => [.value>>.value]}) # list of pairs to list of values
;
say %hash.perl;