Nonesense. I copied the code into an editor, looked at it for a moment, added use strict;, and it took less than a minute and a half to work through the "unrelated and spurious" errors before identifying the culprit. If he'd started off strict, he (probably) never would have had this problem.
Turn on warnings instead. A -w in the #! line or a use warnings would make the problem a lot more obvious.
That's good advice, after problems identified by use strict; have been cleaned up. To jump right into -w is kind of like debugging stuff at run-time that still has compile-time problems.