Where Does plenv Store Perl Versions?
plenv builds each Perl into ~/.plenv/versions with shims in ~/.plenv/shims, switching per project through .perl-version files.
Last updated
plenv gives Perl the same version-manager shape as its siblings: isolated builds under ~/.plenv/versions, shims routing perl, cpanm, and prove to the active one, and a global default in ~/.plenv/version. Each Perl carries its own module set.
That isolation is the point and the gotcha. Switching Perls never disturbs another version's modules, but it also never shares them. Project pins through .perl-version files make the right Perl automatic on entry, assuming the shims sit on PATH.
Where plenv stores this, by platform
~/.plenv/versions
One folder per built Perl plus shims and the global version file. .perl-version files in projects override the global pick. Modules live per Perl and migrate explicitly.
~/.plenv/versions
Identical layout on macOS. System Perl stays untouched outside plenv, which keeps OS tooling safe while projects use modern builds.
Frequently asked questions
Which Perl is active in this folder?
Run plenv versions for installed Perls and plenv version for the resolved pick. A .perl-version file in the project beats the global file, which beats the system Perl.
My CPAN modules vanished after switching Perl. Why?
Reinstall cpanm under the new Perl with plenv install-cpanm (or plenv migrate-modules from the old one). Modules compile against one Perl only and never transfer by copying folders.
Notice an outdated path? Let us know.