Unfortunately your tips don't help in this instance.
I can't reproduce the behavior from scratch, and I've only seen it happen with this one project. I've used perl enough to know that it seldomly generates bogus errors. If it often did, I wouldn't be asking this question because I'd already know the "secrets" ;) This reminds me of times using gcc when it would locate an error in whatever.h, when there was a syntax error in another previously included .h. (Maybe I'm just dense.)