G'day lairel,
"I keep getting errors about uninitialized variables and needing explicit declaration."
Those error messages should tell you the variable involved and other information: use this to track down your problem. If you need help with any particular error message(s), you'll need to show us the text also.
"I have tried so many things that I am lost and confused ..."
You need to understand fundamental constructs, such as while loops. I suggest you read "perlintro -- a brief introduction and overview of Perl".
Consider this technique for accessing fasta files for this type of work:
#!/usr/bin/env perl use strict; use warnings; { local $/ = "\n>"; while (<DATA>) { $_ = substr $_, 1 if $. == 1; my ($head, $data) = split /\n/; if ($head eq $ARGV[0]) { print "Found! Head: '$head'; Data: '$data'\n"; last; } } } __DATA__ >head1 data1 >head2 data2 >head3 data3
Some test runs:
$ pm_1159403_fasta.pl head1 Found! Head: 'head1'; Data: 'data1' $ pm_1159403_fasta.pl head2 Found! Head: 'head2'; Data: 'data2' $ pm_1159403_fasta.pl head3 Found! Head: 'head3'; Data: 'data3'
See also: $/ - input record separator; $. - input line number.
— Ken
In reply to Re: While loop with nested if statements
by kcott
in thread While loop with nested if statements
by lairel
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |