sub searchFileForString { my $fileName = $_[0]; my $searchString = $_[1]; my $SEMAPHORE = $fileName . '.lck'; my $found = 0; open(LOCKFILE, ">$SEMAPHORE") or die "$SEMAPHORE: $!"; flock(LOCKFILE, LOCK_EX) or die "flock() failed for $SEMAPHORE: $!"; open(SEARCHFILE,"+<$fileName") or die "Failed to open $fileName: $!"; if (grep{/$searchString/} ) { $found = 1; } close SEARCHFILE; close LOCKFILE; return $found; }