in reply to =~ matches non-existent symbols
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, |
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: =~ matches non-existent symbols
by Anonymous Monk on Nov 16, 2014 at 16:58 UTC | |
by ikegami (Patriarch) on Nov 18, 2014 at 17:33 UTC |