This line:
if ( <INPUT_FILE> =~ m/[^actgACTG]/ ) {
calls <> (i.e., readline) only once (in scalar context), therefore only the first line of the file is read in and tested. To test the whole file, you need a loop. For example (untested):
my $ok = 1; while (<INPUT_FILE>) { chomp; if (/[^actg]/i) { print "File contains something besides actg sequence.\n"; $ok = 0; last; } } print "good!\n" if $ok;
And yes, the chomp is necessary, otherwise each line (except perhaps the last) will contain a newline character and so fail the regex test.
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re: =~ matches non-existent symbols
by Athanasius
in thread =~ matches non-existent symbols
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |