History of Perl video
Well-researched video gets nearly everything right!
Well-researched video gets nearly everything right!
(Cross-posted from my blog)
Twice a year, around Thanksgiving and Spring, I take stock of all the code that has amassed on my systems. I usually try to release it on CPAN, or at least publish it on GitHub, if not as a way of giving back to the community then at least as another off-site backup.
I created the module when I wrote my third incarnation of fuzzy filtering strings, buggy in slightly different ways. It is already on CPAN.
This is my starter template for whenever I want a clanker to slop out some code.
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.
Submit a talk or browse our speaker guide for details.
Choose a format that fits your subject:
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.
We are happy to announce that there will be a Perl and Raku Devroom at FOSDEM 2027.
*We would like to invite you to submit a presentation about your favorite Perl or Raku topic.
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
All speakers are expected to be present at FOSDEM to give their talk.
About the Perl and Raku devroom, and FOSDEM
A few small matters turned up this week.
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.
For every detail, see the Changes file on MetaCPAN.
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.
In short:
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.
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,@orderand@friends.
The@order(size n) contains every integer from 1 to n exactly once. The@friendscontains IDs sorted in strictly increasing order.
Write a script to return the array containing IDs in finishing order.
Not clear? Let’s look at an example:
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.
Join our announcements-only email list for conference news and video releases.
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:
More recordings are coming over the next couple of weeks, including:
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.
URI::PackageURL 2.26 is on CPAN.
URI-PackageURL implements two specifications that are becoming central to software supply-chain security:
pkg:cpan/URI-PackageURL@2.26)vers:cpan/>=2.00|<2.26)It ships with two CLI tools, purl-tool and vers-tool, and depends only on core modules.
The main change is support for the updated cpan type definition in purl-spec.
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.
Get them at my Home Page's Wiki Haven.
This is the first version where ChangeLog[12] are included in the JSTree, so there are still some tiny cleanups to do...
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.