$string =~ /(.{$n}).*\1/; #### sub longestrepeat { my($string) = @_; for (my $n = 1; 1; ++$n) { return $n - 1 unless $string =~ /(.{$n}).*\1/; } } #### $string =~ /(.{$n}).*\1.*\1/;