Originally published at Perl Weekly 795
Hi there!
I'd like to welcome myself back home in Israel after a long vacation in Korea and Japan. It was awesome, but we reached the conclusiong that next time we should do it when we are younger... One of the highlights of the trip was the talking to people. It is of course mostly service providers and fellow travelers, but in Seoul we managed to meet some local tech people. Unfortunately I could not manage to arrange a meeting with any of the Perl people there. I felt that as a missed opportunity.
Anyway, we have the online events where we do have some time to chat which I find extremely satisfying. You can also join the Perl-related events or for that matter any event. I'd also like to encourage you to offer a presentation on some topic that is dear to you. It can be Perl. It can be AI. It can be any of other other topics we already cover. We can even discuss topics we don't yet cover. Talk to me!
One particular event that was just announced is the one by Randal Schwartz, you know, the guy from the books 'Learning Perl', 'Programming Perl', and a few others. The title is Synthetic Scars: Giving Autonomous AI Agents the Battle-Tested Memory of a Senior Engineer.
We also have a new episode of Underbar.
Enjoy your week!
--
Your editor: Gabor Szabo.
Announcements
Modern Perl Tips
by Dave Cross
Dave wrote: "Talking to Perl programmers, Iβve noticed how easy it is to miss new additions to the language. We learn Perl, get comfortable with it, and get on with writing code. Meanwhile, Perl keeps moving
Modern Perl Tips is a chance to catch up a little at a time. Each tip takes a useful feature you might not have come across, shows how it helps with an everyday problem, and points you towards the documentation. You might discover a clearer way to write something youβve been doing for years."
Articles
Adventures in Real-Time MIDI
by Gene Boggs
Gene writes: "Since discovering Perl real-time MIDI and writing about creating async drums with it, Iβve dug deeper into whatβs possible. I have a few music and MIDI modules on CPAN and like to put them to use in real time, now that I have been enlightened by zen master John Barrett. Ha :D"
URI::PackageURL 2.26 released: PURL and VERS for Perlby Giuseppe Di Terlizzi
URI-PackageURL implements two specifications that are becoming central to software supply-chain security: PURL (Package URL, a uniform way to identify a software package across ecosystems ) and VERS ((Version Range, a universal notation for version ranges)
NetAddr::IP 4.080_05: Please Smoke Testby Dean Hamstead
Dean writes: "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!"
pperl 0.6.23 - RANT, REPL and SPEEDby Richard C. Jelinek
pperl aka. perl implemented in Rust.
Context::Vars: Perl variables with context scopeby Robert Acock
Context::Vars gives you a variable that holds a value per context, and the context follows the work: into every sub called, into callbacks, and across await.
CGI From 1993 Still Powers Your AI Agents Today.
by Gal Ratner
Some history and why Perl won and then lost the battle.
HAMT: persistent maps, sets and vectors for Perlby Robert Acock
HAMT is a new CPAN distribution that gives Perl three persistent containers: HAMT::Map, HAMT::Set and HAMT::Vector. "Persistent" here means an update never changes the container you call it on. It returns a new one, and the old one stays exactly as it was.
Time::Keeper: Time goes by so slowlyby Robert Acock
Time::Keeper is a new CPAN distribution for dates and times. A value is an instant and the zone it is read in, and that is the whole of it: no state to mutate, no locale object, no copy of the zone rules. It covers the ground Time::Piece and DateTime cover between them, and a method that would change a value hands back a new one and leaves the old one as it was.
Discussion
Doom in Perl 100%DOOM, written in Perl 5.44. The engine stays in Perl. SDL2 is only the window, the sound, and the keyboard.
Perl-Magpie.org (CPAN Tester site that works)
Perl and CVEs - another source to scan
Rust is the Perl of the 21st century
Podcast
Configure - The Underbar, episode 11"During the Perl Toolchain Summit 2026 in Vienna, we interviewed Merijn Brand, the Configure maintainer, about this indispensable piece of the Perl build setup."
Grants
PEVANS Core Perl 5: Grant Report for September 2026by Paul Evans
Maintaining Perl 5 Core (Dave Mitchell): September 2026by Dave Mitchell
Maintaining Perl (Tony Cook) September 2026by Tony Cook
The Weekly Challenge
The Weekly Challenge by Mohammad Sajid Anwar will help you step out of your comfort-zone. You can even win prize money of $50 by participating in the weekly challenge. We pick one champion at the end of the month from among all of the contributors during the month, thanks to the sponsor Marc Perry.
The Weekly Challenge - 396by Mohammad Sajid Anwar
Welcome to a new week with a couple of fun tasks "Finishing Order" and "Trionic Array". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the FAQ.
RECAP - The Weekly Challenge - 395by Mohammad Sajid Anwar
Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Complex Number" and "Word Squares" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.
TWC395by Ali Moradi
Ali shares pragmatic and comprehensive solutions in Perl for the two tasks, where complex number arithmetic and backtracking algorithms for word squares are efficiently implemented. The code is written in an organised manner by the proper use of strict pragmas and well structured modular subroutines.
Complex Squaresby Arne Sommer
This approach to the Raku language shows how expressive it can be by using built-in Complex data type to implement calculations while simultaneously employing user-defined subset to adequately validate the unique string formats required by this challenge. In the case of the word squares task, this program uses backtrack recursive algorithm together with command line verification and clear formatting of its output.
Perl Weekly Challenge: Week 395by Jaldhar H. Vyas
Here, Jaldhar offers a dual-language simple rundown in Raku and Perl. In Raku, the Complex data type has an input normalisation and denormalisation part with respect to negative imaginary inputs, while Perl uses direct formula based parsing. In addition to that, a strong recursive depth-first search algorithm with prefix tracking is provided for solving the word squares problem in both programming languages.
Complex Squaresby Jorg Sommrey
This article illustrates stylish and solid implementations in Perl and J for multiplying complex numbers and creating word squares. The approaches make use of Regexp::Common for parsing and Math::Complex for calculations and regular recursive backtracking algorithm. The technical description of the methods is extensive and includes quite special formatting of input.
The Weekly Challenge #395by LuboΕ‘ Kolouch
This entry presents an efficient dual language solution in Perl and Python, which comes with advanced regex parsing capability for the recognition of unusual complex number representations. In particular, the implementation of word squares is well optimised, thanks to the utilisation of a previously computed map of prefixes for smooth backtracking.
Complex Squaresby Matthias Muth
In his blog post, Matthias presents an incredibly neat and idiomatic Perl program. His solution for Task 1 uses Perl's map /-?\d+/g function to get all the numbers directly without any hassle, while Task 2 embodies an ingenious recursive backtracking strategy that follows up both rows and column prefixes at the same time.
There was magic abroad in the airβ¦by Packy Anderson
This post will explore Challenge 395 in Raku, Perl, Python, and Elixir. It offers the reader a humorous reference to the song "A Nightingale Sang in Berkeley Square" in addition to clever parsing using regular expressions for working with complex numbers and a nice solution to the word squares problem.
Complex wordsby Peter Campbell Smith
In this article, an interesting exploration of how complex numbers are formatted mathematically is provided along with a smart and elegant Perl code which is used to process coefficients flexibly and multiply them.
Words are Complexby Roger Bell West
In this article, multiple languages provide an interesting perspective on how to solve the word squares problem. Roger describes how to implement a Perl string parser and construct the problem in a variety of languages, including Typst, where multiple solutions can be found by means of breadth-first search (BFS).
The complex squareby Simon Green
The article gives a clear and realistic description of the problem in both Python and Perl, using the built-in feature of complex numbers in Python and performing the arithmetic manually in Perl using regular expressions.
Weekly collections
NICEPERL's listsby Miguel Prz
Great CPAN modules released last week;
MetaCPAN weekly report.
Events
MCP - Model Context Protocol in Perl: From Web App to AI Tools - with Dave CrossOctober 21, 2026
Punk: Perl MVC, compiled at bootNovember 16, 2026
London Perl & Raku Workshop 2026November 21, 2026
YAPC::Tokyo 2026November 27, 2026
Everyday date and time handling in Perl with TNovember 29, 2026
German Perl/Raku Workshop 2027April 14-16, 2027
You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.
Want to see more? See the archives of all the issues.
Not yet subscribed to the newsletter? Join us free of charge!
(C) Copyright Gabor Szabo
The articles are copyright the respective authors.
Top comments (0)