in reply to problem while searching for a pattern in a file

Your file is a strange format, so I created it programtically, if this is incorrect then please say so. I also simplified the code for these purposes, removing the email components:
#!/usr/bin/perl use strict; use warnings; my $pattern ='hello'; open (my $fh, '>', 'results.txt') or die "results.txt: $!"; binmode $fh; print $fh "\nhello"; close $fh; open FILE, "< results.txt" or die "Can't open results output file: $!" +; while (my $line=<FILE>) { if($line=~m/\b$pattern/) { print " match: <$line>"; } } close FILE;
This matched "hello" as expected, just once. I suggest that maybe your file is not in exactly the format you say.
You might like to display it using, for example od -xc results.txt if you are on UNIX/Linux.

By the way, you are taking a risk running code without warnings and strict set. For example, in the commented out sysopen the flags should be O_RDWR (assuming you use Fcntl;), not o_RDWR, which you won't pickup.