For one example, "-w" catches all kinds of data errors, from premature EOF to non-numbers where you expect numbers, when you pass a file handle to someone else's code. You'll get false positives, but you will also get a hint where the problem lies when you are getting unexpected results. Fix the ones you care about, remove the "-w" when you're done, and there you go. Monstrosities like "strictures", which turn on all warnings but only in your code, will not only miss these errors, but complain about non-problems.
Re^5: How many man-hours would you estimate you have invested in learning Perl?