|
Perl Weekly
Issue #762 - 2026-03-02 - Perl with MetaCPAN
latest | archive | edited by Mohammad Sajid Anwar
|
|
Hi there,
If there's one thing that keeps impressing me in our community, it's the dedication of people like Olaf Alders. Week after week, Olaf keeps refining MetaCPAN, polishing small details and improving the user experience. It's not always flashy work, but when you use MetaCPAN, you can feel it - everything feels smoother, faster, and more reliable. That kind of steady, thoughtful dedication really inspires me.
Speaking of inspiration, Dave Cross recently shared a neat little trick that I think many of us can use. He showed how your README file can be turned into a static website - yes, the README you already have for your module! The article on Dev.to is called "Your README is already a website" and it's a fun, practical reminder that sometimes the tools we already have, can do more than we think. I love seeing simple ideas like that applied in clever ways.
On my side of things, I've been quietly wrestling with some longstanding issues in DBIx::Class. Not only that, but DBIx::Class::Async shares the same quirks, so it's been double the fun. I managed to fix a few problems already, but some issues are tied to PostgreSQL-specific behavior. That turned out to be tricky because most of the existing tests run on SQLite - easy to spin up, but not the same as PostgreSQL. I stumbled upon Test::PostgreSQL, which looked perfect, and then found Test::DBIx::Class, which integrates smoothly with it. I thought, "Great! Just write a use case and done." Ha! Not quite. My Ubuntu 24.04 setup didn't want to play nicely with Test::PostgreSQL - some socket permission issues blocked me entirely. I decided to tinker and ended up creating Test::PostgreSQL::v2, which worked like a charm. Then came integrating it with Test::DBIx::Class, which needed a trait for my new module. After a little more work, I added Test::DBIx::Class::SchemaManager::Trait::Testpostgresqlv2, and voila - now anyone using Test::DBIx::Class with PostgreSQL can benefit. For me, that meant I finally had a reliable way to reproduce the issue and verify the fix, like in this unit test for DBIx::Class::Async v0.64: t/156-resultset-inflate-datetime.t. Feels good to see it all working.
While I was in tinkering mode, I also revisited Test::Spelling. I always get tripped up on British vs. American English in POD, and I wanted a unit test that could work across all my modules. Initially, I had to manually add stopwords per module - tedious! So I upgraded Test::Spelling and created Test::Spelling::Stopwords. Now I can generate stopwords automatically, and the same script works for every module. It's been a real time-saver, and I'm even using it in DBIx::Class::Async here: t/spell-pod.t
It's funny how small tools and little tweaks can make such a difference. Between Olaf's continuous improvements, Dave's clever README trick, and the testing adventures I've had, I feel reminded of what makes our Perl community special - curiosity, persistence, and a little bit of playful tinkering.
Enjoy rest of the newsletter and stay safe & healthy.
Mohammad Sajid Anwar
|
|
|
Announcements
|
by Sarah T Gray
The Perl & Raku Foundation has opened its call for presentations for TPRC 2026, inviting submissions of 20 or 50 minute talks on topics of interest to the Perl and Raku communities. Accepted speakers will receive complimentary conference tickets, with sessions scheduled for June 26–28 in Greenville, SC—an excellent opportunity to share insights and help shape this year's technical programme.
|
|
by D Ruth Holloway
The Perl Foundation's board has put forward Chris Prather (perigrin) as a candidate for board membership, highlighting his decades of professional Perl experience and long‑standing community contributions. His vision emphasises strengthening the Foundation's role in uniting Perl and Raku projects, supporting maintainers, and fostering sustainable ecosystem growth.
|
|
|
Articles
|
by Dimitrios Kechagias (DKECHAG)
This post offers a timely, data‑driven benchmark of CPU performance versus cost across 7 major cloud providers and 44 VM families, using Perl‑based tooling for reproducible results. The concise summary and practical Docker‑ready benchmark suite make it a valuable reference for developers and architects seeking real‑world insights into cloud compute value.
|
|
by David Cantrell (DCANTRELL)
David Cantrell's latest on automatic cross‑platform testing tackles the perennial challenge of running CI on 32‑bit environments using modern GitHub Actions, showing how to assemble a unified workflow across Unix‑like systems while handling 32‑bit builds. He walks through clever tricks for downloading artifacts and even building a 32‑bit Perl with 32‑bit integers for more thorough testing. It’s a practical, hands‑on guide for anyone keen to broaden test coverage beyond the usual 64‑bit platforms.
|
|
|
Podcast
|
by Philippe Bruhat (BOOK)
Olaf Kolkman has had a long career in networking and Open Source that led him to be working on Internet Technology, Policy and Advocacy at the Internet Society. In September 2025, we had a long conversation with him. In this first part, we discussed his involvement with Perl, DNSSEC and NLnet Labs.
|
|
|
CPAN
|
by Dragos Trif
The latest release includes automatic mock data generation for transactional database interactions. That means it's much easier to capture and replay sequences that involve BEGIN WORK, COMMIT, ROLLBACK, and even nested try/catch logic.
|
|
by Nigel Horne
The latest release introduces mutation testing alongside a sleek HTML mutation dashboard, making it easier to see which lines of code survived mutations and where your tests could miss mistakes. Instead of just coverage numbers, you can now ask, "Would a mistake here be caught?" The dashboard highlights affected lines, provides helpful tooltips, and allows detailed per-line inspection.
|
|
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 Lance Wicks.
|
by Mohammad Sajid Anwar (MANWAR)
Welcome to a new week with a couple of fun tasks "String Lie Detector" and "Subnet Sheriff". 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.
|
|
|
by Mohammad Sajid Anwar (MANWAR)
Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Echo Chamber" and "Spellbound Sorting" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.
|
|
|
by Ali Moradi
This blog post delivers clean, idiomatic Perl solutions to both parts of TWC 362, with clear logic in the echo_chamber looping and a well-structured number-to-words sorting implementation. The use of Perl's core functions keeps the code readable and efficient, making it a helpful reference for Perl Weekly Challenge enthusiasts.
|
|
by Arne Sommer
This post offers a clear and idiomatic Raku solution to the 'Echo Chamber' challenge, showcasing concise use of core language features like map, substr, and the repetition operator. The explanation is practical and easy to follow, making it a great example of writing expressive, efficient Raku code.
|
|
|
by Bob Lied
This write-up for PWC 362 gives a thoughtful and practical exploration of multiple Perl approaches to the 'Echo Chamber' string transformation problem. Bob clearly explains regex, list-mapping, and string-building techniques, offering insights into Perl's expressive power and performance trade-offs. It's a solid, engaging read with useful benchmarks for comparison.
|
|
|
by Jaldhar H. Vyas
This Week 362 post on Braincells.com presents clear, idiomatic Perl solutions to the 'Echo Chamber' and spell-sorting tasks, with concise logic leveraging Perl's core functions for string repetition and custom sorting. The explanations walk through the problem and implementation cleanly, making it accessible even for those new to the weekly challenges. It's a solid technical write-up that showcases effective Perl problem-solving.
|
|
by Luca Ferrari
This write-up on Perl Weekly Challenge 362: Lingua to the rescue! gives a clear and practical set of Perl and Raku solutions, especially for the 'Echo Chamber' string task using Raku's expressive constructs and Perl's repetition operator. The post balances readability with technical depth, making it engaging and informative for developers exploring language features.
|
|
by W Luis Mochan
This post delivers clear, idiomatic Perl solutions to both tasks of Perl Weekly Challenge 362, using expressive constructs like map‑based repetition for Echo Chamber and a well‑structured Schwartzian sort with language‑specific converters for Spellbound Sorting. The explanations make the logic easy to follow and showcase Perl's strengths in string and list processing.
|
|
|
by Marc Perry
This post gives a straightforward and well-structured Perl implementation for both parts of Perl Weekly Challenge 362, cleanly illustrating string expansion and English-word sorting logic. The code leverages familiar Perl idioms like map and split for clarity and effectiveness, making it easy to follow for readers interested in Perl string and list processing.
|
|
by Packy Anderson (PACKY)
This write-up offers clear, practical multi-language solutions to the Perl Weekly Challenge 362 tasks, with nicely explained approaches in Raku, Perl, Python, and Elixir that make the logic easy to follow. Packy balances straightforward implementations with thoughtful commentary, making it a technically solid and engaging post for challenge enthusiasts.
|
|
|
by Peter Campbell Smith
This challenge page from Peter presents the Perl Weekly Challenge 362 tasks with clear problem statements for both 'Echo Chamber' and 'Spellbound Sorting'. It provides a solid foundation for exploring string manipulation and sorting by word form, making it a useful resource for practicing concise algorithm design in Perl.
|
|
|
by Reinier Maliepaard
This Weekly Challenge 362 post offers a clean, beginner-friendly Perl implementation of the 'Echo Chamber' task, contrasting a straightforward loop approach with a more declarative map-and-join variant. The explanations highlight readable coding practices and clarify the benefits of each style, making it both instructive and approachable for Perl programmers.
|
|
by Reinier Maliepaard
This PWC 362 Part 2 post presents a clear and efficient Perl solution for sorting numbers by their spelled-out word forms using a classic Schwartzian Transform. The explanation shows thoughtful use of Lingua::Any::Numbers for multilingual support and highlights how to avoid repeated conversions for better performance. It's a technically solid and instructive example of Perl's data-processing strengths.
|
|
by Robbie Hatley
This post presents well‑thought‑out Perl solutions to the Perl Weekly Challenge 362 problems with clear logic and use of idiomatic Perl constructs. The code is structured for readability and correctness, making it a valuable example for anyone exploring challenge‑style problem solving in Perl.
|
|
by Roger Bell West (FIREDRAKE)
This post delivers a clear and well‑explained exploration of The Weekly Challenge 362 tasks, walking through character‑duplication and spelled‑number sorting logic with readable examples. The author balances practical code with thoughtful commentary, offering valuable insights into expressive string and list manipulation techniques.
|
|
by Simon Green (SGREEN)
This post delivers clean, one‑liner solutions in both Python and Perl for the Weekly Challenge 362 tasks, showing concise use of enumeration and string repetition for Echo Chamber and leveraging language‑specific libraries for Spellbound Sorting. Simon's examples and side‑by‑side language comparison make the logic easy to grasp and technically satisfying.
|
|
|
Rakudo
|
|
|
Weekly collections
|
|
|
Events
|
|
|
|
|
|
|
|
|
June 26-29, 2026, Greenville, SC, USA
|
|
You know, you could get the Perl Weekly right in your mailbox. Every Week. Free of charge!
|