PerlOnJava
May 6, 2026 · View on GitHub
Perl 5 on the JVM — single jar, batteries included
PerlOnJava compiles Perl to JVM bytecode — run existing Perl scripts on any platform with a JVM, with access to Java libraries. One jar file runs on Linux, macOS, and Windows — just add Java 22+. PerlOnJava is an independent project, not part of the Perl core distribution.
Features
- Single jar distribution — no installation, no dependencies beyond Java
- Full toolchain —
jperl,jperldoc,jcpan,jprove - 150+ modules included — DBI, Moose / Class::MOP, Plack::Handler::Netty, HTTP::Tiny, JSON, XML::Parser, YAML, Text::CSV, and more
- Web server (PSGI) — Run web apps with Plack::Handler::Netty (HTTP/HTTPS, 32k+ req/sec)
- Install more with jcpan — pure-Perl CPAN modules work out of the box
- JDBC database access — PostgreSQL, MySQL, SQLite, Oracle via standard JDBC drivers
- Embed in Java apps — JSR-223 ScriptEngine integration
- Perl 5.42 language compatibility — see feature matrix
Quick Start
git clone https://github.com/fglock/PerlOnJava.git
cd PerlOnJava
make
./jperl -E 'say "Hello World"'
./jperl -MJSON -E 'say encode_json({hello => "world"})'
Full Quick Start Guide — Installation options, database setup, Docker
Documentation
About: Why PerlOnJava? | Roadmap | Changelog | Support | Security | AI Policy
About Perl
Perl is a high-level, general-purpose language known for text processing, system administration, and web development. Learn more: www.perl.org
Contributing
See CONTRIBUTING.md for build instructions, code organization, and how to submit pull requests.
License
Same terms as Perl 5 — Artistic License or GPL v1+. See LICENSE.md. Copyright (c) Flavio Glock