use strict; use warnings; my $string = "AAATTTAGTTCTTAAGGCTGACATCGGTTTACGTCAGCGTTACCCCCCAAGTTATTGGGGACTTT"; my @runs; my $threshold = 3; length $1 >= $threshold && (push @runs, $1) while $string =~ /(A+|C+|G+|T+)/g; @runs = sort {length($b) <=> length($a)} @runs; printf "@runs\n";