sub kennethk { my $string = shift; my $off = 0; my $step = 10; my @indices = sort {$off = 0; until (substr($string, $a+$off, $step) cmp substr($string, $b+$off, $step)){ $off += $step; $step *= 2; } } 0 .. length($string) - 1; $_++ for @indices; return @indices; } #### RobertCraven 2.90/s kennethk 12.8/s xxx 13.1/s hdb 14.2/s