Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Perl noob struggling to loop through an array

by aitap (Deacon)
on Oct 24, 2012 at 15:52 UTC ( #1000661=note: print w/replies, xml ) Need Help??

in reply to Perl noob struggling to loop through an array

Greetings, Microkorg.

The file I have read into the array is a .fasta DNA sequence file
Search for "fasta" gives many results, and nearly all threads contain links to already written code for FASTA manipulation: BioPerl fasta allBio::AlignIO::fasta

Your code is OK, but please don't use $& because it can slow down your other regexps. Catch symbols using (regexp) and use them as $number_of_catch_group, like this:

if ($line =~ /^>(.+)$/ ) { $header = $1; }
WARNING: Once Perl sees that you need one of $&, "$`", or "$'" anywhere in the program, it has to provide them for every pattern match. This may substantially slow your program. Perl uses the same mechanism to produce $1, $2, etc, so you also pay a price for each pattern that contains capturing parentheses. (To avoid this cost while retaining the grouping behaviour, use the extended regular expression "(?: ... )" instead.) But if you never use $&, "$`" or "$'", then patterns without capturing parentheses will not be penalized. So avoid $&, "$'", and "$`" if you can, but if you can't (and some algorithms really appreciate them), once you've used them once, use them at will, because you've already paid the price. As of 5.005, $& is not so costly as the other two.
Seen at perlre, right before Quoting metacharacters.

Sorry if my advice was wrong.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1000661]
[ambrus]: Corion: those are good rules.
[ambrus]: Discipulus: oh sure. the input data has different filenames every time I get them.
[ambrus]: the directory structure may be 1, 2, or 3 deep, it may have spaces in the filename or not, it has dates in various format, different keywords for the same meanings, and the dates and other keywords are assembled in various ways.
[Discipulus]: no ambrus by specification i mean for example license per core instead of per socket, so fields are different

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (13)
As of 2017-03-29 12:18 GMT
Find Nodes?
    Voting Booth?
    Should Pluto Get Its Planethood Back?

    Results (351 votes). Check out past polls.