Perl and The CPAN
Stop reinventing wheels, start building space rockets
The Comprehensive Perl Archive Network (CPAN) is the place to go to find, download and install any of the incredible (and still growing) collection of Perl libraries. What other programming environment today offers 25,000 modules of reusable code, for free, from one central repository?
CPAN offers an integrated toolchain for developers to find the tools they need to get their jobs done. Far more than just an archive of code libraries, CPAN is a complete, mature ecosystem for the Perl developer.
Following Perl's strong tradition of testing, every distribution of modules uploaded to CPAN is automatically tested on a variety of platforms and Perl configurations. This happens without any intervention or effort from the developer: members of the community have set up a testing network and donate their resources to making every Perl module as robust as possible on every platform they have available. This will typically include configurations developers hadn't anticipated or cannot access themselves: testers run code against many different Unixes (commercial and free) and various versions of Windows. This can provide invaluable debugging information for developers. Beyond just testing modules and reporting failures to developers, anyone can browse and search the full report database, to inform decisions about a module's maturity and suitability for their purpose.
There are a number of Web sites focusing on searching the ever-growing collection of code comprising CPAN. These sites provide more services than just searching for a library to use: they also provide developer tools (grep, version-to-version diff). Another core feature of these sites is Web-based access to module API and usage documentation, written in Perl's integrated POD (Plain Old Documentation) format.
In addition to integrated testing and searching, every module uploaded to CPAN is given free access to a ticket queue in Best Practical's Request Tracker system. Using this ticket queue, users can report problems they've encountered with any Perl library, and communicate with the developer throughout the development cycle. This ticket queue is created and the RT instance maintained free of charge and with no effort required of the developer, just like the other services provided by the Perl community for all modules uploaded.
In tandem with all of the above, every module uploaded to CPAN is mirrored around the world. This provides developers and administrators with mirrors close to them, for fast and robust installation. The mirroring process is open, as is access to the repository contents. This enables administrators to configure local mirrors to enforce policy or minimize network usage. In this way, CPAN is both centralized but distributed: it is the one place to go for Perl libraries, but the files themselves are mirrored worldwide.
All of these efforts combined give Perl an advantage that no other modern programming environment can claim.