PVM

A fast, cross-platform Perl development toolkit.

Single binary. No dependencies.

curl -fsSL https://pvm.tools/install.sh | sh

Detects your platform automatically. Installs to ~/.local/bin.

Four tools, one binary

pvm

Perl Version Manager

Install, switch, and manage Perl versions. Binary and source builds. Shell integration for bash, zsh, fish, and PowerShell.

pvm install 5.40.2
pvm use 5.40.2

pvx

Perl Version eXecutor

Run scripts in isolated environments with automatic dependency detection. Three isolation levels. Inline script metadata.

pvx --require DBI app.pl
pvx --isolation clean script.pl

pm

Perl Module Manager

Install and manage CPAN modules. Lockfile support via cpanfile.snapshot. Search, sync, and dependency tracking.

pm install Mojolicious
pm sync

psc

Perl Structural Checker

Type inference, static analysis, and an LSP server. Guard suggestions, flow narrowing, cross-file analysis. Nothing else in the Perl ecosystem does this.

psc check lib/
psc analyze lib/MyModule.pm

Single Binary

Pure Go. No CGO, no C compiler, no tree-sitter CLI, no Node.js. Cross-compiles to Linux and macOS. Download and run.

Modern Developer Experience

Feature parity with Python's uv. Lockfiles, inline script metadata, auto-dependency detection, isolated execution environments. The tooling Perl deserves.

Static Analysis

PSC infers types from your Perl code without annotations. Catches type mismatches, suggests guard patterns, and serves diagnostics via LSP. No other Perl tool does this.

Quick start

pvm install 5.40.2          # Install Perl
pvm use 5.40.2              # Switch to it
pm install Mojolicious      # Install a module
pvx app.pl                  # Run a script
psc check lib/              # Type-check your code

Coming from plenv or perlbrew?

PVM reads .perl-version files and can import existing installations. Your workflow stays the same. PVM adds lockfiles, isolation, static analysis, and a module manager.

pvm import-system           # Import your system Perl
pvm versions                # See what you have

See the full comparison →