In Perl length is cheap so calculate it when you need it. The following code is a little more Perlish but, other than using a threshold to drop out short strings, is similar to your code. For varieties sake the regex has changed slightly to be a little easier to grok:
use strict;
use warnings;
my $string = "AAATTTAGTTCTTAAGGCTGACATCGGTTTACGTCAGCGTTACCCCCCAAGTTATT
+GGGGACTTT";
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";
Prints:
CCCCCC GGGG AAA TTT TTT TTT
Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond