So reason one for being proud of the CPAN is the sheer amount of code that is available there. I don't know of any other single-language repository of libraries which has more code available. No other language has a single place where you can get all of the libraries you'll need.
And that leads me to reason two for being proud of the CPAN. It's the way that the CPAN is accepted in the Perl community as the one place to distribute your Perl code. For many Perl programmers, if your module isn't on the CPAN then it doesn't exist. It works both ways. If you want a Perl library, you go to CPAN to look for it. And if you want to distribute a Perl library then you put it on CPAN. There's really no other alternative. It's incredible that the Perl community has build up and maintained this idea that CPAN is the only code distribution network that they need.
Another reason for the popularity of CPAN is the way that pretty much all of the code their uses a standard method for packaging and installation. Once you've downloaded and installed one CPAN module, you know how to download and install them all. And it's so easy to do. No messing with paths or anything like that. A CPAN distribution uses the standard method to install the code into standard places that your Perl installation already knows about. Ok, to be honest, there are a few distributions there which don't follow these rules. But these are seen as second-class citizens and are generally ignored.
Then there's the whole eco-system that has grown up around the CPAN. Not sure exactly what module is right for you? Try the CPAN search engine. Is the standard 'make, make test, make install' installation method too complex for you? Then use the cpan (or, more recently, cpanplus) command line program instead. Do you want to see how well the code works without installing it? CPAN encourages the inclusion of test programs in module distributions. And these tests are automatically run each time a new version of a module is released. On many different platfforms. And you can see the results of these test runs. Want to know whether a module that you're interested in is packaged in the standard manner? Then look at CPANTS. Want to review and rate a module that you have tried or read other people's reviews? There's cpanratings. Found a problem with a CPAN module? Report it on the CPAN request tracker. The list goes one and on.
CPAN is Perl's "killer app". You're not a Perl programmer until you know how to use it. It's the number one reason why I'm proud to use Perl.
Leave a comment