@fglock

25 Followers
61 Following
50 Posts

After running continuously for a couple of weeks, PerlOnJava compatibility testing now covers 10,054 randomly selected CPAN modules.

Current results:

3,062 modules pass all tests (30.5%)
Dependencies are tested recursively via jcpan -t
Results are recorded automatically for every module encountered

Compatibility report:
https://github.com/fglock/PerlOnJava/blob/master/dev/cpan-reports/cpan-compatibility.md

#Perl #PerlOnJava #Java

PerlOnJava/dev/cpan-reports/cpan-compatibility.md at master · fglock/PerlOnJava

An implementation of the Perl programming language designed to run on the Java platform - fglock/PerlOnJava

GitHub
PerlOnJava/examples/http_server_plack at master · fglock/PerlOnJava

An implementation of the Perl programming language designed to run on the Java platform - fglock/PerlOnJava

GitHub

@leobm
interesting idea - a Perl facade over Netty could work.

That said, do you think adapting an existing CPAN module might already cover your use case? For example HTTP::Daemon, Net::Server::HTTP, or HTTP::Server::Simple::CGI.

My inclination would be to port one of those to PerlOnJava rather than design a new API from scratch — it keeps things more idiomatic for Perl users and builds on something already well understood.

@leobm following up - got a simple HTTP server running with Netty + PerlOnJava:

https://github.com/fglock/PerlOnJava/tree/master/examples/http_server

#Perl #PerlOnJava #Java

PerlOnJava/examples/http_server at master · fglock/PerlOnJava

An implementation of the Perl programming language designed to run on the Java platform - fglock/PerlOnJava

GitHub

@leobm
There isn’t a Netty/Jetty-style abstraction yet.

Here’s an example of embedding Perl from Java:

https://github.com/fglock/PerlOnJava/blob/master/examples/ExifToolExample.java

“Multiplicity” (running multiple Perl interpreters concurrently) hasn’t been merged, so you’d need some form of locking to handle one request at a time.

Given that, I’d stick with a pure-Perl solution for now, like HTTP::Server::Simple.

An abstraction on top of Netty or Jetty could make more sense once proper concurrency support is in place.

PerlOnJava/examples/ExifToolExample.java at master · fglock/PerlOnJava

An implementation of the Perl programming language designed to run on the Java platform - fglock/PerlOnJava

GitHub

@leobm Mojo is not supported yet - the infrastructure is getting closer: HTTP, Moose are bundled, Template, DBIx::Class can be installed from CPAN.

https://github.com/fglock/PerlOnJava/blob/master/dev/cpan-reports/cpan-compatibility.md

PerlOnJava/dev/cpan-reports/cpan-compatibility.md at master · fglock/PerlOnJava

An implementation of the Perl programming language designed to run on the Java platform - fglock/PerlOnJava

GitHub

🫎 Moose is now bundled with PerlOnJava.

Yes, *that* Moose — the OOP framework that made Perl feel modern. Roles, type constraints, method modifiers, all of it. On the JVM. No install needed.

https://github.com/fglock/PerlOnJava/blob/master/examples/moose.pl

#Perl #Java #Moose #PerlOnJava

PerlOnJava/examples/moose.pl at master · fglock/PerlOnJava

An implementation of the Perl programming language designed to run on the Java platform - fglock/PerlOnJava

GitHub

I’ve written a short blog post with more details on the new CPAN client support in PerlOnJava, including how jcpan works and how XS compatibility is handled.

If you’re interested in the implementation and design choices, take a look:
https://blogs.perl.org/users/flavio_s_glock/2026/03/perlonjava-gets-a-cpan-client.html

#perl #java #perlonjava

PerlOnJava Gets a CPAN Client | Flávio S. Glock [blogs.perl.org]

PerlOnJava now supports installing CPAN modules.

Java-based tooling equivalents are bundled:
jperl, jcpan, jperldoc, and jprove - providing a familiar workflow.

Pure-Perl CPAN modules install out of the box.
XS compatibility is enabled via a Java class (e.g., DateTime.java).

https://github.com/fglock/PerlOnJava

#perl #java #perlonjava

The PerlOnJava talk from FOSDEM 2026 is now online.

PerlOnJava: A Perl distribution for the JVM
📅 Feb 1, 2026 - Flavio Soibelmann Glock

Video:
https://video.fosdem.org/2026/h2215/NGYLQZ-perlonjava_a_perl_distribution_for_the_jvm.av1.webm

#Perl #JVM #FOSDEM #PerlOnJava