|
CPAN is an acronym standing for Comprehensive Perl Archive Network. It is a large archive of software written in Perl, as well as documentation for it. It has a presence on the World Wide Web at www.cpan.org and is mirrored worldwide. It has been suggested that this article or section be merged with Backronym and Apronym (Discuss) Acronyms and initialisms are abbreviations, such as NATO, laser, and ABC, written as the initial letter or letters of words, and pronounced on the basis of this abbreviated written form. ...
Perl, also Practical Extraction and Report Language (a backronym, see below) is a dynamic procedural programming language designed by Larry Wall and first released in 1987. ...
WWWs historical logo designed by Robert Cailliau The World Wide Web (WWW or simply the Web) is a global, read-write information space. ...
A mirror in computing is a direct copy of a data set. ...
Modules
Like many programming languages, Perl has mechanisms to use external libraries of code, allowing a single file to contain common routines used by several programs. Perl calls these modules. Perl modules are typically installed in one of several directories whose paths are placed in the Perl interpreter when it is first compiled; on Unix-like operating systems, common paths include /usr/lib/perl5, /usr/local/lib/perl5, and several of their subdirectories. Other listings of programming languages are: Categorical list of programming languages Generational list of programming languages Chronological list of programming languages Note: Esoteric programming languages have been moved to the separate List of esoteric programming languages. ...
Alternative meanings: Library (computer science), Library (biology) Modern-style library In its traditional sense, a library is a collection of books and periodicals. ...
A Perl module is a discrete component of software for the Perl programming language. ...
In computing, a directory, catalog, or folder, is an entity in a file system which contains a group of files and other directories. ...
A path is the general form of a file or directory name, giving a files name and its unique location in a file system. ...
Interpreter can mean one of the following: In communication, an interpreter is a person whose role is to facilitate dialogue between two parties that do not use the same language. ...
A compiler is a computer program that translates a computer program written in one computer language (called the source language) into an equivalent program written in another computer language (called the output or the target language). ...
Unix or UNIX is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T Bell Labs employees including Ken Thompson, Dennis Ritchie, and Douglas McIlroy. ...
In computing, an operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations. ...
Perl comes with a small set of core modules. Some of these perform bootstrapping tasks, such as ExtUtils::MakeMaker, which is used for building and installing other extension modules; others, like CGI.pm, are merely commonly-used. The authors of Perl don't expect this limited group to meet every need, however. CGI.pm is a large and widely used Perl module for programming Common Gateway Interface (CGI) web applications, providing a consistent API for receiving user input and producing HTML or XHTML output. ...
The CPAN's role The CPAN's main purpose is to help programmers easily locate modules and scripts not included in the Perl standard distribution. It is also used to distribute new versions of Perl, as well as related projects, such as Parrot. Parrot is a register-based virtual machine being developed using the C programming language and intended to run dynamic languages efficiently. ...
The CPAN is an important resource for the professional Perl programmer. With over 10,000 modules (containing 20,000,000 lines of code) the CPAN can save programmers weeks of time, and large Perl programs often make use of dozens of modules. Some of them, such as the DBI family of modules used for interfacing with SQL databases, are nearly irreplaceable in their area of functionality; others, such as the List::Util module, are simply handy resources containing a few common functions. Perl DBI (DataBase Interface) is the most common database interface for the Perl programming language. ...
SQL (commonly expanded to Structured Query Language â see History for the terms derivation) is the most popular computer language used to create, modify, retrieve and manipulate data from relational database management systems. ...
A database is an information set with a regular structure. ...
CPAN structure Files on the CPAN are referred to as distributions. A distribution may consist of one or more modules, documentation files, or scripts packaged in a common archiving format, such as a gzipped tar archive or a PKWARE ZIP file. Distributions will often contain installation scripts (usually called Makefile.PL or Build.PL) and test scripts which can be run to verify the contents of the distribution are functioning properly. gzip is short for GNU zip, a GNU free software replacement for the Unix compress program. ...
In computing, the tar file format is a type of archive file format: the Tape ARchive format. ...
PKZIP is an archiving tool originally written by the late Phil Katz, and marketed by his company PKWARE, Inc. ...
The ZIP file format is the most widely-used compressed file format in the IBM PC world. ...
In 2003 distributions started to include metadata files, called META.yml, indicating the distribution's name, version, dependencies, and other useful information; however, not all distributions contain metadata. When metadata is not present in a distribution, the PAUSE's software will usually try to analyze the code in the distribution to look for the same information; this is not necessarily very reliable. (See the Uploading Distributions with PAUSE section for more.) With thousands of distributions, CPAN needs to be structured to be useful. Distributions on the CPAN are divided into 24 broad chapters based on their purpose, such as Internationalization and Locale; Archiving, Compression, And Conversion; and Mail and Usenet News. Distributions can also be browsed by author. Finally, the natural hierarchy of Perl module names (such as Apache::DBI or Lingua::EN::Inflect) can sometimes be used to browse modules in the CPAN. Internationalization and localization are means of adapting products such as publications or software for non-native environments, especially other nations and cultures. ...
In computing, locale is a set of parameters that defines the users language, country and any special variant preferences that the user wants to see in their user interface. ...
For alternate uses see: Archive (disambiguation). ...
In computer science and information theory, data compression or source coding is the process of encoding information using fewer bits (or other information-bearing units) than an unencoded representation would use through use of specific encoding schemes. ...
In general, conversion is the transformation of one thing into another. ...
A British pillar box (or post box, mail box [U.S.]). The postal system is a system by which written documents typically enclosed in envelopes, and also small packages containing other matter, are delivered to destinations around the world. ...
Usenet is a distributed Internet discussion system that evolved from a general purpose UUCP network of the same name. ...
CPAN module distributions usually have names in the form of CGI-Application-3.1 (where the :: used in the module's name has been replaced with a dash, and the version number has been appended to the name), but this is only a convention; many prominent distributions break the convention, especially those that contain multiple modules. Security restrictions prevent a distribution from ever being replaced, so virtually all distribution names do include a version number.
Components of CPAN The CPAN mirrors The heart of the CPAN is its worldwide network of mirrors. The CPAN master site, ftp.funet.fi, has over 280 public mirrors in 60 countries. Each site has a copy of the over 3.1 gigabytes of data in the CPAN. A gigabyte (symbol GB) is a unit of measurement in computers of one thousand million bytes (the same as one billion bytes in the short scale usage). ...
Most mirrors update themselves daily from the CPAN master site. Some update two times a day or even hourly, and a few update from other mirrors. Some sites are major FTP servers which mirror lots of other software, but others are simply servers owned by companies that use Perl heavily. There are at least five mirrors on every continent except Antarctica. For more information on CPAN mirrors, see mirrors.cpan.org.
Search engines Several search engines have been written to help Perl programmers sort through the CPAN. The most popular is search.cpan.org, which includes textual search, a browsable index of modules, and extracted copies of all distributions currently on the CPAN. Another popular search engine is cpan.uwinnipeg.ca.
Other supporting websites A family of other loosely integrated support websites have been created as the CPAN has grown in size and scale. These are created and managed by individual Perl developers, and provide data feeds to each other in various ad-hoc ways. CPANRatings allows users to write short reviews and rate modules on a 5-star scale CPAN::Forum is a discussion forum where threads are classified by CPAN distribution AnnoCPAN displays the documentation for all the modules on CPAN, along with user-contributed annotations rt.cpan.org is a request tracker for bugs and features, and provide all 10,000 modules with their own ticket queue. CPAN Testers co-ordinates and collects testing results for all CPAN uploads on various platforms. CPAN Testers also has a subsidiary CPAN Testers Statistics website, for monitoring the performance of the CPAN Testing infrastructure. CPANTS, the CPAN Testing Service, evaluates distributions automatically for quality assurance metrics of varying usefulness and assigns them a "kwalitee" rating.
CPAN.pm and CPANPLUS There is also a Perl core module named CPAN; it's usually differentiated from the repository itself by calling it CPAN.pm. CPAN.pm is mainly an interactive shell which can be used to search for, download, and install distributions. A launch script called cpan is also provided in the Perl core, and is the usual way of running CPAN.pm. After a short configuration process and mirror selection, it uses tools available on the user's computer to automatically download, unpack, compile, test, and install modules. It is also capable of updating itself. Recently an effort to replace CPAN.pm with something cleaner and more modern has resulted in the CPANPLUS or CPAN++ set of modules. CPANPLUS more cleanly separates the back-end work of downloading, compiling, and installing modules from the interactive shell used to issue commands. It also supports several advanced features, such as cryptographic signature checking and test result reporting. Finally, CPANPLUS can uninstall a distribution. CPANPLUS is expected to replace CPAN.pm in the core distribution in Perl 5.10. Both modules can check a distribution's dependencies and are capable of automatically (or with the user's approval) recursively installing any prerequisites. Both support FTP and HTTP and can work through firewalls and proxies. Dependency has a number of meanings: In project management, a dependency is a link amongst a projects terminal elements. ...
Uploading distributions with PAUSE Authors can upload new distributions to the CPAN through the Perl Authors Upload Server (PAUSE). To do so, they must register for a PAUSE account. PAUSE accounts have a 3-9 character username consisting of uppercase letters only--no numbers, no lowercase, no punctuation. They also give their full name in their native language, an e-mail address, an optional web address, and a "short description of what [they]'re planning to contribute" to the CPAN. Registration is not immediate, and typically takes a week. Once registered, the new PAUSE account has a directory in the CPAN under authors/id/(first letter)/(first two letters)/(author ID). They may use a Web interface to upload files to their directory and delete them. The PAUSE will warn an administrator if a user uploads a module that already exists, unless they are listed as a co-maintainer. This can be specified through PAUSE's web interface.
The CPAN's Influence Experienced Perl programmers often comment that half of Perl's power is in the CPAN. Though the TeX typesetting language has an equivalent, the CTAN (and in fact the CPAN's name is based on the CTAN), few languages have an exhaustive central repository for libraries. The PHP language has PECL (PHP Extension Community Library) and PEAR (PHP Extension and Application Repository), and Python has a PyPI (Python Package Index) repository, but neither is as large nor as active as the CPAN. Other major languages, such as Java and C++, do not have anything similar to the CPAN. The TeX mascot, by Duane Bibby , written as TeX in plain text, is a typesetting system created by Donald Knuth. ...
CTAN is an acronym for the Comprehensive TeX Archive Network. ...
PHP is an open-source, reflective programming language. ...
The PHP Extension and Application Repository, or PEAR, is a framework and distribution system for PHP code components. ...
The PHP Extension and Application Repository, or PEAR, is a framework and distribution system for PHP code components. ...
Python is an interpreted programming language created by Guido van Rossum in 1990. ...
Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. ...
C++ (generally pronounced see plus plus) is a general-purpose, high-level programming language. ...
The CPAN has grown so large and comprehensive over the years that many people learning Perl seem to elevate it to a sort of mythical status, and express surprise when they begin to encounter topics for which a CPAN module doesn't exist already. The CPAN's influence on Perl's eclectic culture should not be underestimated either. As a hive of activity in the Perl world, the CPAN both shapes and is shaped by Perl culture. Its "self-appointed master librarian", Jarkko Hietaniemi, often takes part in the April Fools Day jokes so popular on the Internet; on 1 April 2002 the site was temporarily named to CJAN, where the "J" stood for "Java". In 2003, the www.cpan.org domain name was redirected to Matt's Script Archive, a site infamous in the Perl community for having badly-written code. — Mark Twain April Fools Day or All Fools Day is a notable day, though not of its own right a holiday, celebrated in many countries on April 1. ...
April 1 is the 91st day of the year (92nd in leap years) in the Gregorian calendar, with 274 days remaining. ...
For album titles with the same name, see 2002 (album). ...
Matts Script Archive is a collection of CGI scripts written in Perl. ...
Beyond April Fools', however, some of the distributions on the CPAN are jokes in themselves. The Acme:: hierarchy is reserved for joke modules; for instance, Acme::Don't adds a don't function that doesn't run the code given to it (to complement the do built-in, which does). Even outside the Acme:: hierarchy, some modules are still written largely for amusement; one example is Lingua::Romana::Perligata, which can be used to write Perl programs in a subset of Latin.
Derivative Works In 2005, a group of Perl developers who also had an interest in JavaScript got together to create JSAN, the JavaScript Archive Network. The JSAN is a near-direct port of the CPAN infrastructure for use with the JavaScript language, which for most of its lifespan did not have a cohesive "community". Wikipedia does not yet have an article with this exact name. ...
See also |