in reply to regex: finding something followed explicitly by a dot

The content of $word is used as a regular expression string. So the dot is a wildcard for a single character.

With $word = "LEAD_TYPE." the match is like $filecontents =~ /LEAD_TYPE./smg which matches the line in the java function declaration (dot matches space character).

It follows that $found=1 being returned by your sub, ending up as the value of $flag

For taking your input literally in the match see the quotemeta builtin sub or the \Q (+ \E) perlre metacharacters.

You may also have a look into perlop to check that your usage of the s- m- and g-modifiers in the match have no influence on your result in the context you perform your match.