#! perl -slw use strict; my %pwm; while( my $line = ) { chomp $line; ++$pwm{ substr $line, $_, 1 }[ $_ ] for 0 .. length( $line ) -1; } my $n = $.; @$_ = map{ $_ ? $_ / $n : 0 } @$_ for values %pwm; print "$_ => @{ $pwm{ $_ } }" for keys %pwm; __DATA__ AAA ATG TTT GTC #### C:\test>530623 A => 0.5 0.25 0.25 T => 0.25 0.75 0.25 C => 0 0 0.25 G => 0.25 0 0.25