Not sure what you mean by 'printing every occurrence of the string' - I'm guessing you mean print the string in context. The snippet below ought to work - replace 'string to search for' and 'searchfile.txt' with the obvious. It will show the first 25 characters on either side of the search string.
my $string = quotemeta 'string to search for';
my $slurp;
{
local $/ = undef;
open my $textfile, '<', 'searchfile.txt' or die $!;
$slurp = <$textfile>;
close $textfile;
}
while( $slurp =~ m/ ( .{0,25} $string.{0,25} )gisx / ) {
print "Found $1\n";
}