#!usr/bin/perl use strict; use warnings; use Data::Dumper; local our @deep; local $; = ','; # A vestige of a previous version my @data = qw(AAA ATG TTT GTC); my @d2 = map [ split // ], @data; my (%hash); for my $entry (@d2) { *deep = $entry; for my $nx (0..$#deep) { $hash{$deep[$nx]}[$nx]++; } } foreach my $entry (values %hash) { $entry = [ map defined $_ ? $_ : 0, @$entry ]; } print Dumper(\%hash);