cpan
by cpan

What cpan is
cpan is a free command-line client for working with CPAN through CPAN.pm. It runs on Linux, macOS, and Windows and handles Perl modules and Perl distributions, commonly distributed as .tar.gz archives. Supplying module names installs them, with installation implied by default; running cpan without arguments opens the CPAN.pm shell. The client lists installed or outdated modules and displays module details and maintainers. It can build modules, run tests, clean module directories, and recompile dynamically loaded modules. Users can choose a mirror for one run, search for faster mirrors, or ping configured mirrors for a report. The -I option loads local::lib for local library paths. Dependency resolution and offline installation are supported. Documentation marks the dry-run and warning options as unimplemented. It also cautions that blindly upgrading every installed module can cause breakage and recommends keeping a backup. The script may be redistributed under Perl’s terms.
Who it suits
cpan suits Perl users who manage modules from a terminal on Linux, macOS, or Windows. It is useful when dependency handling, offline installation, mirror selection, or module testing are needed.
What it does well
- Free command-line access to CPAN
- Runs on Linux, macOS, and Windows
- Resolves dependencies and supports offline installation
- Builds modules and runs their tests
- Provides mirror and module inspection tools
What to know first
- Dry-run option is unimplemented
- Warning option is unimplemented
- Blind upgrades can break installed modules
- Backup is recommended before broad upgrades
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Free | Command-line interface to CPAN · installs and manages Perl modules | Free |
As perldoc.perl.org lists them, read 11 Oct 2026. The maker's own page has the final word.
Verdict
cpan provides a broad terminal workflow for installing, inspecting, building, and testing Perl modules. Its documented unimplemented options and upgrade warning are important considerations for maintenance tasks.
Facts from cpan's own pages
- Build and test
- The client can make modules, run their tests, clean module directories, and recompile dynamically loaded modules. · perldoc.perl.org, 11 Oct 2026
- Dependency resolution
- Yes · perldoc.perl.org, 22 Sept 2026
- Founded
- 1995 · perldoc.perl.org, 28 Sept 2026
- Free plan
- Yes · perldoc.perl.org, 22 Sept 2026
- Install modules
- With module names as arguments, cpan installs the specified modules; the install switch is implied by default. · perldoc.perl.org, 11 Oct 2026
- Interactive shell
- Running cpan without arguments starts the CPAN.pm shell. · perldoc.perl.org, 11 Oct 2026
- License
- The script may be redistributed under the same terms as Perl itself. · perldoc.perl.org, 11 Oct 2026
- Limits
- The dry-run option and warning option are marked unimplemented in the documentation. · perldoc.perl.org, 11 Oct 2026
- Local libraries
- The -I option loads local::lib for using local library paths. · perldoc.perl.org, 11 Oct 2026
- Mirrors
- Users can specify mirrors for one run, find faster mirrors, or ping configured mirrors for a report. · perldoc.perl.org, 11 Oct 2026
- Module inspection
- The client can list installed modules, show out-of-date modules, and display module details and maintainers. · perldoc.perl.org, 11 Oct 2026
- Offline installation
- Yes · perldoc.perl.org, 22 Sept 2026
- Package formats
- Perl modules; Perl distributions,commonly .tar.gz archives · perldoc.perl.org, 22 Sept 2026
- Purpose
- The cpan script provides a command interface to CPAN and uses CPAN.pm to do the work. · perldoc.perl.org, 11 Oct 2026
- Risk
- The documentation warns that upgrading all installed modules blindly can break things and recommends keeping a backup. · perldoc.perl.org, 11 Oct 2026
- Supported platforms
- Linux,macOS,Windows · perldoc.perl.org, 22 Sept 2026
Where cpan stands on Freedom251
- Package Managers#42 of 93
