Skip to content
SPECIFICTION
Get listed

plenv

github.com

Free plan macOSLinux
Visit github.com
Spec score 7.5 #17 of 30 in Runtime Version Managers

What it is

plenv is a free Perl version manager for selecting the interpreter an application uses, helping keep development aligned with production. It installs Perl versions in the user’s home directory and switches between them in the shell. A `.perl-version` file can pin a Perl version to a directory, taking precedence over the global selection. Shell script wrappers called shims route Perl executable commands to the selected version. Setup instructions cover Bash and Zsh, with optional shell integration and autocompletion. Installation options include GitHub, an archive, and Homebrew on Mac OS X. The `perl-build` plugin supplies `plenv install`; `plenv-contrib` adds `use` and `lib` commands as a local::lib integration replacement. The README recommends Carton for upgrades and deployments. `migrate-modules` installs the newest module versions from one Perl environment into another, though the resulting versions may differ. The README lists Perl 5.8.1+ and Bash as dependencies, and curl for `plenv install-cpanm`. plenv supports Linux and macOS and is free software redistributable under the same terms as Perl itself.

Spec sheet

Purpose
plenv lets users select a Perl version for an application so the development environment matches production.Read 7 Oct 2026 · github.com
Integrations
The README recommends using plenv with Carton for Perl upgrades and deployments.Read 7 Oct 2026 · github.com
Support
The README directs users to GitHub issues for bug reports.Read 7 Oct 2026 · github.com
License
The project says plenv is free software redistributable under the same terms as Perl itself.Read 7 Oct 2026 · github.com
Founded
2013Read 28 Sep 2026 · github.com
Compatibility limit
plenv is incompatible with perlbrew, and the README says to uninstall perlbrew and remove its shell initialization references before installing plenv.Read 7 Oct 2026 · github.com
Dependencies
The README lists Perl 5.8.1+ and Bash as dependencies, with curl needed for `plenv install-cpanm`.Read 7 Oct 2026 · github.com
Installation
The README documents installation from GitHub, from an archive, and through Homebrew on Mac OS X.Read 7 Oct 2026 · github.com
Module migration
The `migrate-modules` command installs the newest versions of modules from one Perl environment into another, and the README cautions that versions may differ.Read 7 Oct 2026 · github.com
Plugins
perl-build provides the `plenv install` command, and plenv-contrib adds `use` and `lib` commands as a local::lib integration replacement.Read 7 Oct 2026 · github.com
Project versions
A `.perl-version` file sets a local Perl version for a directory, overriding the global version.Read 7 Oct 2026 · github.com
Shell support
The README documents setup for Bash and Zsh, including optional shell integration and autocompletion.Read 7 Oct 2026 · github.com
Shims
plenv uses shell script wrappers called shims for Perl executables.Read 7 Oct 2026 · github.com
Version management
It installs Perl versions under the user's home directory and lets them switch versions in a shell.Read 7 Oct 2026 · github.com

Plans and prices

plenv Free Perl binary manager · free software under the same terms as Perl 5 Read 7 Oct 2026 · github.com

Every plenv plan and price →

Strong points and limits

Strong points

  • Pins a Perl version per directory with `.perl-version`.
  • Supports Linux and macOS.
  • Offers Bash and Zsh setup guidance.
  • Free plan; free software under Perl's terms.

Limits

  • Incompatible with perlbrew.
  • Lists Perl 5.8.1+ and Bash as dependencies.

Who it suits

plenv suits Perl developers who need to select versions per shell or project directory. It may also help teams align development interpreters with production.

Verdict

plenv offers project-level version pinning and shell-based switching for Perl environments. Those using perlbrew must remove it and its shell initialization references before installing plenv.

Where Specifiction places it

Alternatives to plenvAll alternatives →