Hello

in addition to what has already been said about doing multiple times things that can be done only once (reading files many times, etc.), and although this is not directly what you are asking for, I would strongly recommend some changes to your coding style. Especially, you've got a lot of repeated code. Just to take an example, this big 30-line while loop:

while (my @line=split (/\t/,<SEQ>)){#for each sequence record +the nmer information my $ct=0; my $start=$line[1]; if ($start < $line[2]){##Watson Strand # ... } else{##Crick Strand # ... } }

is coming twice, with identical or almost identical code. Put that in a separate subroutine which you call then twice where you need. This will remove about 60 lines from your main code and make it much shorter and far easier to follow. It will also make it easier to figure out possible performance improvements. And, last but not least, if you have a bug in that code or need to re-factor it, you will need to correct it only once.


In reply to Re: Code Optimization by Laurent_R
in thread Code Optimization by azheid

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.