|Just another Perl shrine|
Re: Why is the error thrown from close(FH) when the error is the missing <> on while(FH)?by kcott (Canon)
|on Feb 01, 2013 at 07:55 UTC||Need Help??|
Welcome to the monastery.
Perl is reading up to the statement terminator (semicolon) on line 92 before deciding that it's found a disallowed bareword. The fact that line 92 also contains KNOWN_HOSTS is something of a red herring. Consider:
Where code extends over multiple lines, Perl will typically report an error at the end of the multi-line code. You need to bear this in mind when debugging - you can have instances where you need to backtrack many lines to find the line where the actual problem has occurred.
If you're wondering why Perl didn't see the closing brace as the end of the statement, consider:
Aside: where you used perl -MO=Deparse -p ... above, I'm wondering if you meant perl -MO=Deparse,-p ..., i.e. s/ -p/,-p/.