http://www.perlmonks.org?node_id=369783


in reply to File search question

If the behavior is as you describe with the typos fixed, then the problem may have to do with line-termination issues. Maybe line 4 of the file actually contains "testpoint\r\n" (i.e. a CRLF) instead of just "\n". If the perl script is running on the same OS that created the text file, then this ouqht to work:
while (<FILE>) { chomp; if ( $_ eq "testpoint" ) { last; } }
But if the text file was made on one OS and the script is running under a different OS (and if it's not gauranteed that the file has not gone through a dos2unix or unix2dos filter), then you're better off using the regex approach. To get effectively the same behevior as a working "eq", just anchor the beginning and ending of the regex:
while (<>) { if ( /^testpoint\s*$/ ) { last; } }