Look again. The problem clearly lies on that one line where it does that stuff... you know... with the underscore and the dollar sign? Yea, right in that general area.
*edit*
1. If it only runs with the -w switch, isn't that better?! I think that's how all perl code should be. I'd even go so far as to say Acme::Code::Police should be a required module.
2. You might want to post the code or at least post a link to it or something. If the script is really really long, you might consider using nopaste.