[johngg@justy Documents]$ perl -Mstrict -Mwarnings -MData::Dumper -E ' > my $str = q{BATCATDATEFEAT}; > my %res; > $res{ $_ } = do { > my $ct = 0; > my $rhPosns = {}; > $rhPosns->{ ++ $ct } = pos $str > while $str =~ m{$_}g; > $rhPosns; > } for qw{ A T }; > print Data::Dumper > ->new( [ \ %res ], [ qw{ *res } ] ) > ->Sortkeys( 1 ) > ->Dumpxs(); > foreach my $let ( sort keys %res ) > { > foreach my $seq ( sort { $a <=> $b } keys %{ $res{ $let } } ) > { > say qq{$let=$seq ends at $res{ $let }->{ $seq }}; > } > }' %res = ( 'A' => { '1' => 2, '2' => 5, '3' => 8, '4' => 13 }, 'T' => { '1' => 3, '2' => 6, '3' => 9, '4' => 14 } ); A=1 ends at 2 A=2 ends at 5 A=3 ends at 8 A=4 ends at 13 T=1 ends at 3 T=2 ends at 6 T=3 ends at 9 T=4 ends at 14 [johngg@justy ~]$