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,