plenv
Manage multiple Perl versions
TLDR
Show the currently selected Perl version and how it was selected
List all available installed Perl versions
Set the global Perl version (used unless a local or shell version takes priority)
Set the local application-specific Perl version (used in the current directory and all directories below it)
Set the shell-specific Perl version (used for the current session only)
Display help
Display help for a command
SYNOPSIS
plenv [command] [args] [--version] [--help] [--verbose]
PARAMETERS
--version
Display plenv version and exit
--help
Show general help or help for command
--verbose
Enable verbose output for commands
install [version]
Install a Perl version using perl-build
uninstall version
Remove a Perl version
rehash
Regenerate shims for installed executables
global [version|--unset]
Set or unset global Perl version
local [version|--unset]
Set or unset local Perl version in .perl-version
shell [version]
Temporarily activate a Perl version in current shell
versions
List installed and current Perl versions
version-name
Show current Perl version name
version-file-read
Read version from .perl-version file
whence command
Locate executable in shims or versions
DESCRIPTION
plenv is a lightweight Perl version management tool inspired by rbenv and pyenv. It enables users to install, manage, and switch between multiple Perl versions seamlessly on a per-user or per-project basis.
plenv works by inserting executable shims into your $PATH, which transparently delegate to the selected Perl version. This avoids system-wide changes and conflicts with package managers. Key features include global and local version settings via .perl-version files, shell integration for temporary overrides, and support for perl-build to compile Perl from source.
Ideal for developers working on legacy projects requiring specific Perl versions or testing across CPAN dependencies. It prepends shim directories to PATH, ensuring perl, cpan, and other tools resolve correctly without aliases or wrappers. plenv integrates with shells like bash, zsh, and fish via init scripts.
CAVEATS
Requires perl-build for installations; shims may conflict with system perl if PATH misordered.
Not suitable for root installs; per-user only.
INSTALLATION
curl -L https://raw.github.com/tokuhirom/plenv/master/bin/plenv-installer | bash
Then add to shell: export PATH="$PLENV_ROOT/bin:$PATH"; eval "$(plenv init -)"
SHELL INTEGRATION
Supports bash, zsh, fish. Run plenv init - after setup and restart shell.
HISTORY
Created in 2013 by tokuhirom as rbenv port for Perl. Actively maintained on GitHub; integrates perl-build (successor to perlbrew). Gained popularity post-Perl 5.18 for multi-version workflows.


