CPAN is quite flexible, and can be used by non-root users from their home directories, so I'm sure it's possible to set it up so that it only touches non-distro managed directory trees such as /usr/local - it even has an option to do upgrades into a new directory without overwriting the system version.