The above is the script I use when installing a new Perl via perlbrew.
Since it takes any module list as argument, it's perfectly able to install
(or upgrade) any list of modules. The next program simply creates such
list, and calls the previous one to upgrade them all.

install-outdated

This bash script asks the CPAN module which modules are considered
outdated, and calls the above Perl script to upgrade them all.

Conclusion

That's it: every once in a while I simply launch the install-outdated
script and all the Perl modules I use are upgraded to their latest version.
Before beginning the upgrade, one could git tag the current revision,
so that the branch could be reset there should the upgrade not go well.