Following our save-the-date announcement, talk submissions are now open for the Winter 2026 Perl Community Conference, December 17 & 18 in Austin, Texas, and online—including Perl’s birthday!
We welcome practical Perl 5 projects, useful techniques, lessons from production, scientific research, and ideas worth sharing. First-time speakers are welcome. Present in person, live remotely, or by prerecorded video.
Web development, systems administration, developer tools, scientific computing, software preservation, AI-assisted Perl work, and lessons from maintaining real systems all belong here. Tell us what you built, what you learned, and what someone else could use.
Speakers with approved talks receive a free ticket to the whole conference.
All speakers are expected to be present at FOSDEM to give their talk.
About the Perl and Raku devroom, and FOSDEM
FOSDEM is the largest gathering of Open Source developers and contributors in Europe. The conference features typically more than 700 talks, for more than 10,000 attendees, organized by the FOSS communities themselves. This is a great venue to learn about both the technologies and the people behind them! If you rely on Perl and Raku, or Open Source tech and communities in general, FOSDEM is the best place to be.
We are happy to announce that there will be a Perl and Raku Devroom at this year's FOSDEM. We would like to invite you to submit a presentation about your favorite Perl or Raku topic.
Summary
Call closes on: November 27th 2026 at 23:59 UTC (00:59 CET)
FOSDEM dates: Saturday January 30th - Sunday January 31st
There are a few issues sitting around that we’d like to roll into a 5.44.1 release, being various bugfixes that have accumulated. We’d like to get a more streamlined process for making these releases. We hope to have a more concrete proposal soon.
The recent PR (#25042) to fix the SV flags associated with PL_sv_zero looks like a good idea that we should accept anyway, even though it doesn’t actually fix the JSON serialisation problem with JSON::XS. That module may be beyond our ability to influence.
We think that renaming util.h to something less likely to collide with OS headers (such as perl_util.h) is a good idea as a first step. This may likely lead to a wider task of moving all of our internal headers into their own subdirectory, to neaten up the structure and avoid the problem recurring in future, but this first step will at least help reveal any potential problems with doing that.
NetAddr::IP 4.080_08 is on CPAN as a trial release. If you use NetAddr::IP, install it and run your code against it before 4.080 goes stable.
The last post here covered 4.080_05. Since then, 4.080_06, 4.080_07 and 4.080_08 changed constructor, parsing, comparison and method behaviour, and they added new4() and NetAddr::IP::Count. In almost every case, the behaviour changes handle bad or ambiguous input better: they reject it, return undef, or croak with a clear error instead of producing a wrong address. The 4.080 series is also relicensed to the MIT license. This post lists the API changes you may need to check in your code.
I’ve been working again on faster integer factoring in my Perl module
Math::Prime::Util::GMP.
My latest work grew into msiqs,
a standalone factoring program that is competitive
with specialized software I've been recommending for years, such as YAFU.
But first, what does this mean for Perl users?
The upcoming Math::Prime::Util::GMP 0.55 replaces its old quadratic
sieve with a new implementation. For the difficult numbers where
this algorithm is useful, factoring gets considerably faster, uses
less memory, and works at larger sizes. You get those improvements
through the familiar Math::Prime::Util interface:
use Math::Prime::Util qw(factor);
my $n = "861718837045131266076605675795055735226483972739042530561207";
print join(" * ", factor($n)), "\n";
Math::Prime::Util automatically uses its optional GMP backend when
installed. Passing a large integer as a decimal string is fine; you
don’t need to construct a Math::BigInt object just to factor it.
The factoring code is written in C, with GMP handling the large integers.
Stats::LikeR: R’s statistics toolkit, native in Perl
I got tired of writing CSV files just so I could run a t-test in R.
My data was nearly always in Perl already. I’d parse a log or a lab export, clean it up, dump it to disk, open R, run t.test, and paste the p-value back into the Perl script that built the report. Every one of those hops is a chance for a column to get reordered or an NA to turn into a zero without anyone noticing.
Before: Perl, CSV, R, copy by hand, Perl. After: one Perl script.
Stats::LikeR is what I wrote so I could stop doing that. Version 0.34 is on CPAN now.
All three of us discussed the recent issue GH24977 about how the behaviour of interpolation in regexp quotes changes under use strict in latest blead perl. We feel this is a change that needs more thinking and adjustment before it reaches a stable perl release.
Aside from that, the mailing list and github issues tracker have both been rather quiet of late, so there aren’t any other major issues that require our attention.
Dancer2 2.3.0 is on its way to CPAN. It adds support for the HTTP QUERY method, fixes a pair of JSON serializer bugs, and closes a small information leak in error responses.
If your app speaks JSON, you want this one.
Why 2.3.0 and not 2.2.3? QUERY support adds a new keyword, and a new keyword can collide with code you already have. Details below.
New: HTTP QUERY support
QUERY is a newer HTTP method that's safe and idempotent like GET, but carries a request body like POST. It's meant for searches and lookups that are too big or too complicated to cram into a query string. (Yes, it's the thing a lot of us have been faking with POST for years.)
This blog post was inspired by the Task 1 of Weekly Challenge 396. Let’s start with the actual wording of the task:
You are given two arrays of integers, @order and @friends.
The @order (size n) contains every integer from 1 to n exactly once. The @friends contains IDs sorted in strictly increasing order.
Write a script to return the array containing IDs in finishing order.
The Perl Community is busily preparing for the Winter 2026 PCC, December 17 & 18 in Austin, TX, and remote—including Perl’s birthday! We’re planning on yet another great lineup of in-person and remote presentations.
In the meantime, thanks to a few generous souls, we’ve hired a video editor to help us release the conference recordings. The first two videos from Winter 2025 PCC are up:
Since 2012 I have been saying in public that Perl needs applications,
and that CPAN by itself is not the killer application. These apps
never arrived, and the usual answer was "use the right tool for the
job". In a time when AI reimplements whole software suites, the
question is worth asking again. Our answer is PetaApps: a NAS, a
hypervisor, a software-defined network, a mail server and a backup
server, on one platform, built on Rust and Perl. None of it is
finished. All of it is under way.
NetAddr::IP 4.079 was released in 2016 and has sat there since. I have started working on it recently, and 4.080_05 is the fifth trial release since. It is on CPAN now, and the tarball is ready for you to install!
Most of what changed is a matter of course: about a hundred fixes to bugs and to documentation that had drifted from the code, and a set of three breaking changes that fix behaviour the documentation said should not happen. NetAddr::IP is now MIT licensed, was dual licensed under GPL v2 or the Artistic License, and deprecations collected under one heading are going in version 5.
pperl 0.6.25 is released; the changelog has the complete record:
https://perl.petamem.com/docs/eng/changelog/index.html. Until now
pperl showed what it could do: a feature here, a module there, a
benchmark won. This release is measured against what others need. The
internal libraries and software suites of PetaMem and PetaJoule run
on pperl in full, and of the 500 distributions the rest of CPAN
stands on, all but three pass - 99.9% of the CPAN River by weight.
By GoPerl — Architecture, Perl, Go & Node.js for companies that need reliable and scalable systems.
In today’s modern systems, especially in web development, new stacks and new developers grow up with the idea of async/await—in other words, asynchronous systems. Many adopt the concept without fully understanding what lies behind it. The simplest goal is clear: make your application feel fast and responsive, without leaving users waiting.
Let’s take this into the enterprise world, where speed, scalability and resilience define technological competitiveness. One concept that immediately enters the conversation is job queues. Behind every high‑performance system, there is always a subsystem responsible for processing heavy tasks without blocking the user experience.
Within the Perl ecosystem, that subsystem has a name: Minion.
Minion provides a modern job queue with SQL persistence, real asynchronous execution and a simple distributed model. This makes it a more robust and easier‑to‑operate alternative compared to Redis‑based solutions like Sidekiq or BullMQ.
I have uploaded to CPAN some tooling modules which allow Perl documentation to be authored as Markdown files - or Docbook XML articles - then merged into source files as POD. They can also then be published as HTML to static sites such as Github pages or Cloudflare Workers.
Documentation can be tedious - despite knowing how important good documentation is, and that it can make or break open-source software. Nothing is worse than trying to run "man Some::Module" (or "perldoc Some::Manual") and getting nothing back.
POD is the "linga franca" of the Perl world for a good reason - it has stood the test of time, is completely integrated into the Perl ecosystem and is an excellent format for creating manual pages for Perl modules and scripts.