Funny, I'm doing the same thing with a config::general schema. Not sure if this will help or not, but far too late in the game I came across Test::WWW::Mechanize - might be of some value
"I have never written bad code. There are merely unanticipated features."