plenv
github.com
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
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
- Runtime Version Managers#17 of 307.5
- Development Environment Managers#35 of 507.4