my %freq; my $inc = 1 / @data; for my $d ( @data ) { # $freq{ substr $d, $_, 1 }[ $_ ] += $inc for 0 .. length( $d )-1; my $p = 0; $freq{ chop $d }[ $p++ ] += $inc while length $d; }