ETA: When I ask "Why do you not use CPAN modules?", I am referring to the people who refuse to use any CPAN modules (including high quality ones like DBI). Not all CPAN code is of high quality, and it is fine to stay away from modules that are trivial or are based on experimental code (I got annoyed at a developer the other day for wanting to bring in Time::Format just because he didn't know that strftime was in POSIX).
Recently on Perl Beginners, someone want to know how to do something without resorting to the Perl module commonly suggested for that function. He or she did not want to install the module from CPAN. This made me think about the reasons I have seen people avoid using CPAN and I came up with five reasons for this behaviour and the solution for each one:
- they scare you (answer, get over it)
- they scare your sysadmins (answer, work around them by installing in your home directory and use the lib pragma)
- you are using a hosting service that prevents you from installing modules (answer, get a better service, there are cheap services that don't behave like morons)
- the target machine doesn't necessarily have the needed module (answer, use PAR or PAR::Packer)
- the target machine is totally locked down (i.e. you login to rbash and have to provide code to a third party for inclusion on the box) (a combination of 4 and going through the bureaucracy)
- You are using an embedded version of Perl that can't load modules (no answer, you are stuck, but this is very rare)
So, if you don't use CPAN, why, and why are the answers above not adequate? Note, I am not asking why you don't install directly from CPAN on production boxen, I am asking why you avoid using the modules from CPAN (installing via packaging systems count as using CPAN to me).