plenv
What it is
plenv is a free Perl version manager for Linux and macOS. It installs Perl versions in a user’s home directory and lets developers switch the active version in a shell, helping align development with production. A `.perl-version` file assigns a version to a project directory and overrides the global choice. Shell-script shims route Perl executable commands through the selected version. The README documents setup for Bash and Zsh, including optional shell integration and autocompletion. Installation is described through GitHub, an archive or Homebrew on Mac OS X. The perl-build plugin adds `plenv install`, while plenv-contrib supplies `use` and `lib` commands as a local::lib integration replacement. Carton is recommended for upgrades and deployments. The `migrate-modules` command transfers newest module versions between environments, although versions may differ. Dependencies include Perl 5.8.1+ and Bash; curl is needed for `plenv install-cpanm`.
For and against
For
- Free software under Perl terms
- Pins versions with `.perl-version`
- Supports Bash and Zsh
- Offers shell autocompletion
- Installs versions in the home directory
Against
- Incompatible with perlbrew
- Requires Perl 5.8.1+ and Bash
- curl needed for install-cpanm
- Module versions may differ after migration
The verdict
plenv provides project and global Perl version selection with shell integration and plugins. Its perlbrew incompatibility and listed dependencies should be checked before installation.
Who it suits
plenv suits Perl developers on Linux or macOS who need project-specific interpreter versions and shell switching. It is useful when development and production versions must stay aligned.
Plans and prices
plenv
Perl binary manager · free software under the same terms as Perl 5
Read 7 Oct 2026 · github.com
On the record
- Compatibility limit
- plenv is incompatible with perlbrew, and the README says to uninstall perlbrew and remove its shell initialization references before installing plenv.github.com · read 7 Oct 2026
- Dependencies
- The README lists Perl 5.8.1+ and Bash as dependencies, with curl needed for `plenv install-cpanm`.github.com · read 7 Oct 2026
- Installation
- The README documents installation from GitHub, from an archive, and through Homebrew on Mac OS X.github.com · read 7 Oct 2026
- Integrations
- The README recommends using plenv with Carton for Perl upgrades and deployments.github.com · read 7 Oct 2026
- License
- The project says plenv is free software redistributable under the same terms as Perl itself.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- Plugins
- perl-build provides the `plenv install` command, and plenv-contrib adds `use` and `lib` commands as a local::lib integration replacement.github.com · read 7 Oct 2026
- Project versions
- A `.perl-version` file sets a local Perl version for a directory, overriding the global version.github.com · read 7 Oct 2026
- Purpose
- plenv lets users select a Perl version for an application so the development environment matches production.github.com · read 7 Oct 2026
- Shell support
- The README documents setup for Bash and Zsh, including optional shell integration and autocompletion.github.com · read 7 Oct 2026
- Shims
- plenv uses shell script wrappers called shims for Perl executables.github.com · read 7 Oct 2026
- Support
- The README directs users to GitHub issues for bug reports.github.com · read 7 Oct 2026
- Version management
- It installs Perl versions under the user's home directory and lets them switch versions in a shell.github.com · read 7 Oct 2026