Freedom251 › Runtime Version Managers
plenv

What plenv is
plenv is a free Perl version manager for choosing which Perl a project uses. It installs Perl versions under the user’s home directory and lets users switch versions in a shell, helping align a development environment with production. A `.perl-version` file can set a project-specific version for a directory; that local selection takes precedence over the global version. Perl commands are routed through shell script wrappers called shims.
The project documents setup for Bash and Zsh, including optional shell integration and autocompletion. Users can install plenv from GitHub, an archive, or Homebrew on Mac OS X. The `perl-build` plugin provides the `plenv install` command, while `plenv-contrib` adds `use` and `lib` commands as a local::lib integration replacement. The README recommends Carton for Perl upgrades and deployments. Its `migrate-modules` command installs the newest module versions from one Perl environment into another, and those versions may differ from the original environment.
plenv supports Linux and macOS and is distributed as free software under the same terms as Perl itself. The listed dependencies are Perl 5.8.1 or later and Bash; curl is needed for `plenv install-cpanm`. plenv is incompatible with perlbrew, so existing perlbrew installations and shell initialization references must be removed before installing plenv. Bug reports can be sent through GitHub issues.
Who it suits
plenv suits Perl developers who need different Perl versions for different projects or want a development environment to match production. It is aimed at Linux and macOS users who work in Bash or Zsh and are comfortable installing a command-line tool and managing shell setup.
What it does well
- A `.perl-version` file can pin Perl to a project directory.
- Local project versions take precedence over the global selection.
- Optional Bash and Zsh shell integration and autocompletion are documented.
- Plugins add installation and local::lib integration commands.
- The module migration command can move modules between Perl environments.
- It is free software under the same terms as Perl itself.
What to know first
- plenv is incompatible with perlbrew.
- The listed dependencies include Perl 5.8.1+ and Bash.
- Module migration may produce different module versions.
- curl is needed for `plenv install-cpanm`.
Limits
plenv requires Perl 5.8.1 or later and Bash; curl is required for `plenv install-cpanm`. It cannot be used alongside perlbrew, and migrated modules may have different versions in the destination environment.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| plenv | Perl binary manager · free software under the same terms as Perl 5 | Free |
As github.com lists them, read 7 Oct 2026. The maker's own page has the final word.
Getting started
- Visit https://github.com/tokuhirom/plenv.
- Install plenv from GitHub, an archive, or Homebrew on Mac OS X.
- Set up the shell using the documented Bash or Zsh instructions.
- Optionally enable shell integration and autocompletion.
- Use the `perl-build` plugin for the `plenv install` command, if needed.
- Add a `.perl-version` file in a project directory to select its Perl version.
Verdict
Choose plenv if you need project-specific Perl versions on Linux or macOS and want shell-based switching. Its local version file and shims provide per-project selection, while plugins extend installation and module workflows. Look elsewhere if you need to keep using perlbrew, which is incompatible with plenv.
Questions
Is plenv free?
Yes. plenv is free software redistributable under the same terms as Perl itself.
Which operating systems does plenv support?
The project lists Linux and macOS support.
How does plenv select a project’s Perl version?
A `.perl-version` file sets a local version for its directory, overriding the global selection.
Which shells are documented?
The README documents Bash and Zsh setup, with optional shell integration and autocompletion.
Can I use plenv with perlbrew?
No. plenv is incompatible with perlbrew; the README says to uninstall perlbrew and remove its shell initialization references before installing plenv.
How can I install plenv?
The README documents installation from GitHub, from an archive, and through Homebrew on Mac OS X.
Facts from plenv's own pages
- 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, 7 Oct 2026
- Dependencies
- The README lists Perl 5.8.1+ and Bash as dependencies, with curl needed for `plenv install-cpanm`. · github.com, 7 Oct 2026
- Founded
- 2013 · github.com, 28 Sept 2026
- Installation
- The README documents installation from GitHub, from an archive, and through Homebrew on Mac OS X. · github.com, 7 Oct 2026
- Integrations
- The README recommends using plenv with Carton for Perl upgrades and deployments. · github.com, 7 Oct 2026
- License
- The project says plenv is free software redistributable under the same terms as Perl itself. · github.com, 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, 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, 7 Oct 2026
- Project versions
- A `.perl-version` file sets a local Perl version for a directory, overriding the global version. · github.com, 7 Oct 2026
- Purpose
- plenv lets users select a Perl version for an application so the development environment matches production. · github.com, 7 Oct 2026
- Shell support
- The README documents setup for Bash and Zsh, including optional shell integration and autocompletion. · github.com, 7 Oct 2026
- Shims
- plenv uses shell script wrappers called shims for Perl executables. · github.com, 7 Oct 2026
- Support
- The README directs users to GitHub issues for bug reports. · github.com, 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, 7 Oct 2026
Where plenv stands on Freedom251
- Runtime Version Managers#18 of 30
- Development Environment Managers#37 of 50