#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11122267 use warnings; my $string = "AAATTTAGTTCTTAAGGCTGACATCGGTTTACGTCAGCGTTACCCCCCAAGTTATTGGGGACTTT"; my @substrings; push @{ $substrings[length $1] }, $1 while $string =~ /(([ACTG])\2+)/g; my @sorted = map @{ $_ // [] }, reverse @substrings; use Data::Dump 'dd'; dd \@sorted;