A good tool to validate your files using w3c validator. Take care of one thing that you should get a local copy of w3c validator otherwise if you process multiple files using this module then your IP may get blocked by w3c. This has happened with me.
This package lets you send local HTML to the W3C validator and offers easy-to-use results to judge standards compliance of your markup. I use this as part of my test suite for web apps: I use Test::WWW::Mechanize::Catalyst and validate every page I touch. To do this, I run my own local copy of the W3C validator (to avoid burdening the real w3c server and to let me work offline) which this module supports quite nicely.
I've added my own MD5-keyed caching in front of this module since I check the same HTML over and over. I think it's appropriate that this module does not offer caching itself -- simple is good. This module made adding my own caching quite easy by letting me override the LWP::UserAgent instance that it uses internally with my own caching subclass.
There's also a corresponding WebService::Validator::CSS::W3C package which does similar work for CSS. They have fairly similar APIs, but some significant differences (e.g. one returns a list from $v->warnings, one returns an arrayref -- grr). It would be nice if those two packages matched their APIs up a little better to let scaffold code use them polymorphically.