PerlOnJava 5.44.0: Named Parameters in Signatures
PerlOnJava 5.44.0 updates the project to Perl 5.44 language compatibility and expands support for modern Perl applications on the JVM. This release adds named parameters in signatures, a new interpreter backend, stronger CPAN compatibility, new developer tools, and a large collection of bundled modules—all delivered as a single runnable JAR.
🚀 Highlights
Perl 5.44 and Named Parameters
- PerlOnJava now identifies as Perl 5.44.0 throughout the runtime, build files, launchers, configuration, and documentation.
- Named parameters are supported in method and subroutine signatures.
- Modern class features include
class,method,field,:param,:reader,:isa, andADJUSTblocks.
Interpreter, Debugger, and Control Flow
- New register-based interpreter backend, available with
--interpreter. - Interactive Perl debugger with the
-dcommand-line option. deferblocks with LIFO execution and exception safety.- Non-local control flow with
last,next,redo,goto LABEL, andgoto $EXPR. - Trampolined tail calls for
goto &NAMEandgoto __SUB__.
Tools and CPAN Compatibility
- New
jcpan,jperldoc, andjprovecommand-line tools. - Bundled Moose 2.4000 and Class::MOP 2.4000 support a growing range of real-world CPAN distributions.
- Java implementations transparently replace native XS backends for supported modules.
- Improved
-s,-C0, and-CAhandling for UTF-8 command-line arguments.
New and Expanded Modules
This release adds or expands support for modules including:
CPAN,Time::Piece,TOML,DirHandle, andDumpvalueIO::Socket,IO::Socket::INET,IO::Socket::UNIX,IO::Socket::SSL, andNet::SSLeayArchive::Tar,Archive::Zip,IO::Zlib,Net::FTP, andNet::CmdIPC::Open2,IPC::Open3, andExtUtils::MakeMakerXML::Parser,Pod::Html, andCpanel::JSON::XSFilter::Simple,Scalar::Util, andattributes
JVM Integration and Services
Plack::Handler::Nettyprovides an asynchronous PSGI HTTP/HTTPS server.- DBI continues to provide JDBC-backed database access, with SQLite bundled.
- The JSR-223 script engine supports compile-once, execute-many integration from Java applications.
- Additional system operators include
flock,syscall,fcntl, andioctl.
Reliability, Security, and Builds
- Lexical warnings with
use warningsandFATALsupport. DESTROYsupport with selective reference counting and global destruction handling.- Weak references through
Scalar::Util::weaken,isweak, andunweaken. - CycloneDX SBOM generation for Java and Perl dependencies.
- Maven and Gradle clean builds are supported and tested.
- CI validates the release on Ubuntu and Windows with JDK 22.
🐞 Bug Fixes and Compatibility Improvements
- Fixed nested
@{${...}}dereferencing inpushandunshift. - Fixed regex octal escapes from
\10through\377. - Fixed
\Kbehavior in matching and substitution. - Fixed multiline
/ghandling for^and$. - Fixed Time::HiRes operator overrides and internal temporary-variable initialization.
- Improved list assignment and scalar type-resolution performance.
- Added automatic handling for JVM method-size limits.
PerlOnJava 5.44.0 is a substantial step toward running modern Perl applications and CPAN modules directly on the JVM while preserving the project's single-JAR deployment model.
See the full changelog and documentation.