PetaPerl unterstützt kein XS (C-Erweiterungen). Stattdessen werden leistungskritische CPAN-Module nativ in Rust reimplementiert. Diese „nativen Module“ bieten dieselbe Perl-API wie ihre XS-Gegenstücke, integrieren sich aber direkt in PetaPerls Laufzeitumgebung — was JIT-Kompilierung, Auto-Parallelisierung und Null-FFI-Overhead ermöglicht.
Wenn Sie use List::Util qw(sum min max) schreiben, erkennt PetaPerls Modul-Lader, dass List::Util eine native Implementierung besitzt, und registriert Rust-Funktionszeiger direkt. Es gibt keinen Kompilierungsschritt, kein .so-Laden und keinen XS-Glue-Code.
Native Funktionen werden über NativeFn dispatcht — einen direkten Funktionszeiger mit O(1)-Aufruf-Overhead, identisch zu eingebauten Operatoren.
Native Module laufen mit derselben Geschwindigkeit wie eingebaute Operatoren, da sie denselben Dispatch-Mechanismus verwenden. Für Funktionen, die Blöcke entgegennehmen (first, any, all, reduce), verwendet PetaPerl MULTICALL-Optimierung, um den Overhead von Unterprogrammaufrufen pro Element zu vermeiden.