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.
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.