in reply to future warnings

This sounds like a pretty good idea (and one that's possibly workable, at that!) One alternative would be to invert your logic. Instead of
use warnings version => 5.008003;
to only get warnings introduced at or before 5.8.3, perhaps a
use warnings lastversion => 5.008003;
to only get the relevant warnings introduced, and
no warnings 'lastversion';
as the opposite. This means that newer code will implicitly support the new warnings (because it lacks a 'lastversion' declaration), while retrofitting old code to inhibit the new warnings (in case it causes a problem) is one line added to the top of the file. The already-lexical nature of 'use warnings' should take care of the rest.
--Stevie-O
$"=$,,$_=q>|\p4<6 8p<M/_|<('=> .q>.<4-KI<l|2$<6%s!<qn#F<>;$, .=pack'N*',"@{[unpack'C*',$_] }"for split/</;$_=$,,y[A-Z a-z] {}cd;print lc