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; }