|
Perl Weekly
Issue #760 - 2026-02-16 - Async Perl
latest | archive | edited by Mohammad Sajid Anwar
|
|
Hi there,
Perl's asynchronous ecosystem continues to grow, enabling developers to build non-blocking, responsive applications with ease. Modules like IO::Async, async features in Mojolicious, and helpers for asynchronous database operations (such as DBIx::Class::Async) allow event-driven designs, background tasks, and futures/promises, making high-throughput web services, real time APIs, and streaming pipelines straightforward to implement.
Projects like PAGI and PAGI::Server, now with HTTP/2 support, and Thunderhorse showcase how Perl can handle multiple connections efficiently while keeping code clear and maintainable. Together, these tools make it easier to build responsive, scalable, and maintainable applications, all while retaining the expressive, pragmatic style that continues to define Perl.
With each new module and project, Perl's potential in the modern, concurrent world keeps expanding, the best is yet to come.
A small milestone reached with this issue, my 200th edition. Enjoy rest of the newsletter and stay safe.
Mohammad Sajid Anwar
|
|
|
Announcements
|
by D Ruth Holloway
It’s great to see the announcement for The Perl and Raku Conference 2026 (TPRC) taking shape, with registration opening and plans underway for a vibrant community gathering in Greenville, SC this June. The post reinforces the value of bringing Perl and Raku developers together for talks, workshops, and networking. A highlight on the opensource calendar that strengthens the ecosystem and connects contributors across projects.
|
|
|
In This week in PSC 215, the Perl Steering Council covered a deep discussion around legal identifier name restrictions for security without reaching consensus and planning to broaden the conversation beyond p5p, tackled the challenge of an absent maintainer for the dual‑life Encode module, and decided to hold off on merging larger PRs like magic v2 and attributes v2 due to the upcoming freeze in this release cycle. These updates give a clear snapshot of ongoing governance and core maintenance decisions within the Perl project.
|
|
Articles
|
by Saif Uddin Ahmed (SAIFTYNET)
The post reflects on the challenge of rational decision‑making with a quirky, human‑centred anecdote, weaving in the idea that structured data models, like decision trees, can help bring objectivity to complex choices. The post’s blend of storytelling and commentary on data structures adds a thoughtful and entertaining perspective for programmers thinking about reasoning and modeling in code.
|
|
|
by Mohammad Sajid Anwar (MANWAR)
A practical real‑world example of using Mojolicious’ built‑in WebSocket support to build an interactive online chat app in Perl, complete with multiple server variants and integration options like Redis or PostgreSQL. The repository showcases how easily Mojolicious can handle real‑time bidirectional communication with WebSockets, making it a solid reference for Perl developers exploring event‑driven web apps.
|
|
|
by Max Maischein (CORION)
The post previews Max's talk at the German Perl Workshop 2026, exploring how modern AI coding agents from Anthropic and z.ai can assist with Perl development, what differences exist between the models, and tips for getting them to write good code. It’s an engaging look at practical uses of agentic AI in real world programming contexts, a timely topic for anyone curious about AI‑assisted development.
|
|
by Laurent Dami (DAMI)
This article highlights one of Perl’s unique strengths, the local keyword, showing how it enables temporary, dynamic changes to global variables without permanent side effects. With clear examples manipulating %ENV, special Perl variables and even symbol table entries, it makes a compelling case for using local judiciously to solve real world problems that lexical scoping alone can’t.
|
|
|
CPAN
|
by John Napiorkowski (JJNAPIORK)
The announcement of PAGI::Server 0.001017 highlights experimental HTTP/2 support built on nghttp2, bringing both cleartext h2c and TLS‑based HTTP/2 to Perl web services with automatic protocol detection and solid h2spec compliance. The write‑up explains why HTTP/2 matters for backend performance and modern use cases like gRPC and multiplexed APIs, and it also outlines other quality‑of‑life improvements and operational fixes in the release.
|
|
|
by Nigel Horne
Version 0.28 of App::Test::Generator, the black‑box test case generator, has just been released with improved schema extraction and test generation accuracy, tightening detection of getter/setter methods and better typing in generated tests. These enhancements make it easier to produce honest, robust fuzz and corpus driven test harnesses from your Perl modules.
|
|
by Yitzchak Scott-Thoennes
Run::WeeklyChallenge is a small but useful CPAN module that helps you automate running solutions to challenges from The Weekly Challenge site by passing one or more sets of JSON‑formatted inputs to your code. It cleanly wraps your solution logic and input schema validation, making it easier to test and reuse challenge solutions programmatically.
|
|
by Mohammad Sajid Anwar (MANWAR)
DBIx::Class::Async is a modern asynchronous wrapper for DBIx::Class that allows non‑blocking database operations in Perl, keeping the familiar DBIC interface while running queries in the background via futures. The latest update brings several improvements: caching is now disabled by default (TTL 0), automatic detection of non-deterministic SQL functions (like NOW() and RAND()) ensures safe bypass of caching, cache invalidation on update/delete operations is more precise using primary keys, and count() queries are no longer cached to guarantee accurate row counts. These enhancements make asynchronous DBIC usage both safer and more reliable.
|
|
|
by Mohammad Sajid Anwar (MANWAR)
Syntax::Highlight::Engine::Kate provides Perl programs with robust syntax highlighting using the same engine as the Kate editor. The latest update fixes Issue #23 in Template.pm: the testDetectSpaces() regex was corrected, ensuring only spaces and tabs are matched and improving number highlighting in Perl and other languages. The test suite expected outputs were also updated to reflect the corrected highlighting behavior.
|
|
|
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 "Zeckendorf Representation" and "Find Celebrity". 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 "Text Justifier" and "Word Sorter" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.
|
|
|
by Ali Moradi
This write-up delivers straightforward, idiomatic Perl solutions for both text justification and word sorting, showing practical use of fc for case-insensitive comparisons and clear subroutine design. The concise code examples make the challenge solutions easy to follow and apply.
|
|
by Arne Sommer
In this post, an effective solution to The Weekly Challenge #360 is given, with beautiful examples showing how Raku can be implemented for text justification and sorting as the output. Most of the explanations are fairly short, but they are clearly defined, giving lots of examples; and, they consider the idiomatic usage of Raku's features to make the output readable and helpful.
|
|
|
by Bob Lied
This article offers a thoughtful take on the Word Sorter task from PWC 360, with a clear explanation of the case-insensitive sort and an efficient Perl solution using a Schwartzian transform. The benchmarking insight and attention to Unicode case folding nuance show both practical coding skill and depth of understanding.
|
|
|
by Jaldhar H. Vyas
This write-up clearly presents both Text Justifier and Word Sorter tasks with simple, idiomatic Perl and Raku solutions that showcase practical string manipulation and sorting techniques. The inclusion of multiple examples and cross-language snippets makes the challenge approachable and highlights the expressive power of each language.
|
|
by W Luis Mochan
This post showcases clear, idiomatic Perl solutions for both the Text Justifier and Word Sorter tasks, with one‑liner examples and concise logic that demonstrate practical use of integer arithmetic and case‑preserving sorting. The included sample inputs and outputs make the behavior easy to follow and verify.
|
|
|
by Marc Perry
This post methodically implements both Text Justifier and Word Sorter solutions for PWC 360 in clear Perl code, showing careful step-by-step padding logic and idiomatic sorting. The explanations of how the examples are handled make the approach easy to follow and instructive for readers.
|
|
by Matthias Muth
The post offers well‑structured Perl solutions that clearly implement both text justification and alphabetical word sorting with idiomatic constructs and practical tests. The use of case‑preserving sorting and centered padding logic demonstrates good command of Perl’s core features and makes the solutions easy to follow and reuse.
|
|
by Packy Anderson (PACKY)
An excellent and clear walk-through of the Perl Weekly Challenge tasks, with well-structured multi-language solutions and thoughtful explanations that make the text justification and word sorting problems easy to follow. The blend of Perl, Raku, Python, and Elixir examples shows both depth and versatility of approach.
|
|
|
by Peter Campbell Smith
The post presents the Text Justifier and Word Sorter tasks clearly with well-explained inputs and desired outputs, giving readers a solid grounding in the problem definitions. The examples are practical and show the expected string centering and alphabetical ordering behavior in a way that supports straightforward implementation.
|
|
|
by Reinier Maliepaard
This post demonstrates a practical and idiomatic Perl solution by leveraging String::Pad for Text Justifier, showcasing how using existing modules can simplify challenge tasks. The concise examples with clear input/output make it easy to grasp the task mechanics and verify correctness.
|
|
by Reinier Maliepaard
This write-up delivers a succinct and idiomatic Perl solution to the Word Sorter task, using a case-insensitive sort and clean split/grep logic that keeps words unchanged while ordering them alphabetically. The included test cases make the behavior clear and easy to verify.
|
|
by Roger Bell West (FIREDRAKE)
This post delivers clear and well-commented solutions to both Text Justifier and Word Sorter tasks from The Weekly Challenge 360, using concise Lua, Raku, Perl and other language examples with practical explanations of key steps like centered padding and case-insensitive sorting. The author’s discussion of different implementation strategies highlights thoughtful coding decisions that make the techniques accessible and educational for readers.
|
|
by Simon Green (SGREEN)
This write‑up walks through both the Text Justifier and Word Sorter tasks from The Weekly Challenge 360 with clear Python and Perl solutions, showing well‑structured logic for string padding and case‑insensitive sorting. The practical examples and side‑by‑side language implementations make the techniques easy to understand and apply.
|
|
|
by Vinod Kumar K
This write‑up distills both Text Justifier and Word Sorter solutions into clean, minimal Perl scripts with clear logic for padding and sorting, and emphasizes solid test‑driven development and edge‑case handling. The examples and explanation of core techniques make it both beginner‑friendly and technically sound.
|
|
Rakudo
|
|
|
Weekly collections
|
|
|
The corner of Gabor
A couple of entries sneaked in by Gabor.
|
Do you use WhatsApp? Join the Perl Maven chat group!
|
|
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!
|