Hi monks,

In this task, I want to capture any length pattern that continually repeated $NeedRepeat times to @res. My code works, but looks really expensive. Any better approach for this ?

use strict; # start config my $NeedRepeat = 5 ; my $String = "ABCABCABC1231234123123ABCABCABC123TestTestTestTestTest12 +34123123123121212121212121212121ppppp"; # end config my $strMaxLen = length ( $String ); my (@res,%temp); foreach my $startPos ( 0 .. $strMaxLen ) { foreach my $getLen ( 0 .. $strMaxLen ) { $String =~ /.{\Q$startPos\E}(.{\Q$getLen\E})/; my $targetPhrase = $1; next unless $targetPhrase; $temp{$1} = 1 if ( $String =~ /(\Q$targetPhrase\E){\Q$NeedRepe +at\E}/ ) ; } } @res = sort keys %temp; print $_ . $/ foreach @res;

In reply to Capture variable length pattern when it repeats variable times by exilepanda

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.