Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

pperl

pperl is a next-generation Perl 5 platform written in Rust, targeting Perl 5.42+ compatibility.

Goals

  • Auto-Parallelization - Automatic parallel map, grep, for, while loops via Rayon work-stealing
  • JIT Compilation - Native code generation via Cranelift for hot loops (up to 76x faster than perl5)
  • Pure Perl Viability - Fast enough that XS becomes optional

Architecture Overview

flowchart LR
    subgraph Input
        A[Perl Source]
    end

    subgraph Parser
        B[Lexer] --> C[Parser]
        C --> D[AST]
    end

    subgraph Compiler
        D --> E[Codegen]
        E --> F[OpArena]
    end

    subgraph Runtime
        F --> G[Interpreter]
        G --> H[PP Dispatch]
    end

    subgraph Output
        H --> I[Result]
    end

    A --> B

Quick Start

# Run a script
pperl script.pl

# Run one-liner
pperl -e 'print "Hello, World!\n"'

# Check syntax only
pperl -c script.pl

Compatibility

pperl aims for high compatibility with Perl 5.42+. See Differences from Perl 5 for known incompatibilities.

Platform Support

  • Linux only (any architecture)
  • No Windows, macOS, or other platforms