I allow the ports to install the Perl Ports that they depend on, but I always compile my own version of Perl. I have a Cpan script that install modules that I need and set config for Cpan. This way I don't have to go to each port and install the modules. I have another script that takes the perl tar file and installs it in /usr/local/perl-?.?? dir, links /usr/local/perl to the new perl dir and then runs the Cpan script to set the config and install the modules. The Cpan config is set to "follow" all dependent modules. I find this much more convenient than using all the ports, which use the BSDpan module.