# PPerl Architecture How pperl is built, what sets it apart from upstream Perl 5, and the subsystems a working programmer reaches for when they want more than ”run this Perl script“ — the JIT, the FFI, the native-module layer, and the dual runtime. This guide is descriptive, not a tutorial. Read it to understand *how* pperl does what it does and *why* certain things behave the way they do. Per-function behaviour lives in the [reference tree](../../p5/index.md). * [Runtimes](runtimes.md) * [JIT Compilation](jit.md) * [Auto-FFI (Peta::FFI)](ffi.md) * [Native Modules](native-modules.md) * [Differences from Perl 5](differences-from-upstream.md)