#!/usr/bin/perl # http://perlmonks.org/?node_id=1162755 use strict; use warnings; my %score; chomp(my @array = ); for my $i (1..@array) { $score{$1}[$-[0]] += 1/@array while $array[$i - 1] =~ /(.)/g; } printf " " . "%5s " x @array . "\n", sort keys %score; for my $pos ( 1..length $array[0] ) { printf "%1d" . "%7.2f" x @array . "\n", $pos, map { $score{$_}[$pos - 1] // 0 } sort keys %score; } __DATA__ AABBC BAABC AABBD AACBB