The Makefile.PL says the minimum Perl is 5.004 but the code says otherwise. The utf8.t test has "use warnings" in it, that's a 5.6 thing. This can be removed. URI::_idna and URI::_punycode both use qr// which is a 5.5 thing, and really pretty buggy until 5.6. These can be removed to restore 5.004 compatibility (maybe, I don't have a 5.004 to test against) but there's so few users writing new code for anything less than 5.6 these days it seems criminal to throw out qr//. And 5.6'isms are going to leak back in anyway. I would recommend upgrading the minimum Perl to 5.6.1 (because as long as you're at it, why deal with 5.6.0 bugs?).