Perl 5 is a pragmatic language on its own, yet the ever-pragmatic Perl community has extended that language and made their work available to the world. If you have a problem to solve, chances are someone's already written--and shared--Perl code for it.
Modern Perl programming makes heavy use of the CPAN (http://www.cpan.org/). The Comprehensive Perl Archive Network is an uploading and mirroring system for redistributable, reusable Perl code. It's one of--if not the--largest archives of libraries of code in the world. The CPAN offers libraries for everything from database access to profiling tools to protocols for almost every network device ever created to sound and graphics libraries and wrappers for shared libraries on your system.
Modern Perl without the CPAN is just another language. Modern Perl with the CPAN is amazing.
CPAN mirrors distributions, or collections of reusable Perl code. A single distribution can contain one or more modules, or self-contained libraries of Perl code. Each distribution occupies its own CPAN namespace and provides unique metadata.
The CPAN itself is merely a mirroring service. Authors upload distributions and the CPAN sends them to mirror sites, from which users and CPAN clients download, configure, build, test, and install them. The system succeeds because of this simplicity as well as the contributions of thousands of volunteers who've built on this distribution system. In particular, community standards have evolved to identify the attributes and characteristics of well-formed CPAN distributions. These include:
Standards for automated CPAN installers.
Standards for metadata to describe what each distribution provides and expects.
Standards for documentation and licensing.
Additional CPAN services provide comprehensive automated testing and reporting to improve the quality of packaging and correctness across platforms and Perl versions. Every CPAN distribution has its own ticket queue on http://rt.cpan.org/ for reporting bugs and working with authors. CPAN sites also link to previous distribution versions, module ratings, documentation annotations, and more. All of this is available from http://search.cpan.org/.
Modern Perl installations include two clients to connect to, search, download, build, test, and install CPAN distributions, CPAN.pm and CPANPLUS. For the most part, each of these clients is equivalent for basic installation. This book recommends the use of CPAN.pm solely due to its ubiquity. With a recent version (as of this writing, 1.9800 is the latest stable release), module installation is reasonably easy. Start the client with:
To install a distribution within the client:
... or to install directly from the command line:
Eric Wilhelm's tutorial on configuring CPAN.pmhttp://learnperl.scratchcomputing.com/tutorials/configuration/ includes a great troubleshooting section.
If your operating system provides its own installation of Perl 5, that version may be out of date or it may have its own dependencies on specific versions of CPAN distributions. Serious Perl developers often construct virtual walls between the system Perl and their development Perl installations. Several projects help to make this possible.
App::cpanminus
is a relatively new CPAN client with goals of speed, simplicity, and zero configuration. Install it with cpan App::cpanminus
, or:
App::perlbrew
is a system to manage and to switch between your own installations of multiple versions and configurations of Perl. Installation is as easy as:
The local::lib
CPAN distribution allows you to install and to manage distributions in your own user directory, rather than for the system as a whole. This is an effective way to maintain CPAN distributions without affecting other users. Installation is somewhat more involved than the previous two distributions, though App::local::lib::helper
can simplify the process. See http://search.cpan.org/perldoc?local::lib and http://search.cpan.org/perldoc?App::local::lib::helper for more details.
All three projects tend to assume a Unix-like environment (such as a GNU/Linux distribution or even Mac OS X). Windows users, see the Padre all-in-one download (http://padre.perlide.org/download.html).
Hey! The above document had some coding errors, which are explained below:
- Around line 3:
-
A non-empty Z<>
- Around line 11:
-
Deleting unknown formatting code U<>
- Around line 62:
-
Deleting unknown formatting code U<>
Deleting unknown formatting code U<>
- Around line 105:
-
Deleting unknown formatting code N<>
Deleting unknown formatting code U<>
- Around line 154:
-
Deleting unknown formatting code U<>
Deleting unknown formatting code U<>
- Around line 162:
-
Deleting unknown formatting code U<>