Perl 🐪 Weekly #760 - Async Perl

Published: (February 15, 2026 at 11:06 PM EST)
8 min read
Source: Dev.to

Source: Dev.to

Hello, Perl Community!

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.

Milestone: This issue marks my 200th edition. Enjoy the rest of the newsletter and stay safe.

šŸ“… Upcoming Event

Join us for TPRC 2026 in Greenville, SC!

It’s great to see the announcement for The Perl and Raku Conference 2026 (TPRC) taking shape, with registration open and plans underway for a vibrant community gathering in Greenville, SC this June. The conference reinforces the value of bringing Perl and Raku developers together for talks, workshops, and networking—a highlight on the open‑source calendar that strengthens the ecosystem and connects contributors across projects.

This Week in PSC (215) | 2026‑02‑11

In PSC 215, the Perl Steering Council covered:

  • A deep discussion around legal identifier name restrictions for security (no consensus yet) and a plan to broaden the conversation beyond p5p.
  • The challenge of an absent maintainer for the dual‑life Encode module.
  • A decision to hold off on merging larger PRs (e.g., 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.

Poplar Decisions

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 blend of storytelling and commentary on data structures adds a thoughtful and entertaining perspective for programmers thinking about reasoning and modeling in code.

Mojo with WebSocket

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.

Coding Agents using Anthropic and z.ai – Presentation at the German Perl Workshop 2026

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.

Beautiful Perl Feature: local, for Temporary Changes to Global Variables

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.

PAGI::Server, Now with HTTP/2!

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.

Black Box Test Generator v0.28 Released

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.
  • Tighter detection of getter/setter methods.
  • Better typing in generated tests.

These enhancements make it easier to produce honest, robust fuzz and corpus‑driven test harnesses from your Perl modules.

Run::WeeklyChallenge

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.

DBIx::Class::Async

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 disabled by default (TTL 0).
  • Automatic detection of non‑deterministic SQL functions (e.g., NOW(), RAND()) to safely bypass caching.
  • More precise cache invalidation on UPDATE/DELETE using primary keys.
  • count() queries are no longer cached to guarantee accurate row counts.

These enhancements make asynchronous DBIC usage both safer and more reliable.

Syntax::Highlight::Engine::Kate

Syntax::Highlight::Engine::Kate provides Perl programs with robust syntax highlighting using the same engine that powers the Kate text editor. It supports a wide range of languages and can be integrated into command‑line tools, web applications, or any Perl script that needs to render highlighted source code.

  • Engine: Kate editor
  • Update: The latest release fixes Issue #23 in Template.pm. The testDetectSpaces() regex now correctly matches only spaces and tabs, improving number highlighting in Perl and other languages. The test‑suite expected outputs have been updated to reflect the corrected highlighting behavior.

The Weekly Challenge – 361

The Weekly Challenge by Mohammad Sajid Anwar invites you to step out of your comfort zone.

  • Prize: $50 for the weekly winner.
  • Monthly Champion: One champion is selected each month from all contributors, thanks to sponsor Lance Wicks.

This Week’s Tasks

  1. Zeckendorf Representation
  2. Find Celebrity

For more information, see the [FAQ].

RECAP – The Weekly Challenge – 360

A quick look back at last week’s contributions by Team PWC on the ā€œText Justifierā€ and ā€œWord Sorterā€ tasks (Perl & Raku). Below are several write‑ups that showcase clean, idiomatic solutions.

TWC 360 – Highlights

TitleLanguage(s)Key Points
Full CirclePerl, RakuStraightforward Perl solutions; uses fc for case‑insensitive comparisons; clear subroutine design.
Pertaining to a Subtlety of SortingPerlExplains case‑insensitive sort; uses Schwartzian transform; benchmarks Unicode case‑folding nuances.
Perl Weekly Challenge: Week 360Perl, RakuPresents both tasks with simple, idiomatic code; multiple examples; cross‑language snippets.
Perl Weekly Challenge 360PerlOne‑liner examples; integer arithmetic; case‑preserving sorting; sample I/O for verification.
This is Exactly the Sort of Justification That I Was Looking ForPerlStep‑by‑step padding logic; idiomatic sorting; clear explanations.
Justifying TIMTOWTDIPerlWell‑structured solutions; case‑preserving sort; centered padding; reusable code.
Word Crimes Are JustifiedPerl, Raku, Python, ElixirMulti‑language walk‑through; thoughtful explanations; demonstrates versatility.
Padding and Sorting–Clear problem definitions; practical examples of centering and alphabetical ordering.
The Weekly Challenge – 360: Text JustifierPerlUses String::Pad; concise examples; easy verification of task mechanics.
The Weekly Challenge – 360: Word SorterPerlCase‑insensitive sort; clean split/grep logic; test cases included.
Justify the WordsLua, Raku, Perl, …Well‑commented solutions; discusses centered padding & case‑insensitive sorting across languages.
Padding and Sorting (Python/Perl)Python, PerlSide‑by‑side implementations; clear logic for padding & sorting.
Perl Power: Two Tiny Scripts, Big Learning!PerlMinimal scripts; emphasizes test‑driven development; handles edge cases.

Common Themes Across the Write‑ups

  • Idiomatic Perl: Use of fc, String::Pad, and Schwartzian transforms.
  • Cross‑Language Insight: Solutions often presented in Perl, Raku, Python, Lua, and even Elixir, highlighting transferable concepts.
  • Testing: Most posts include test cases to verify correct padding, centering, and sorting behavior.
  • Performance: Benchmarks and discussion of Unicode case folding show attention to efficiency.

How to Use This Collection

  1. Read a write‑up that matches your preferred language.
  2. Copy the core subroutines (e.g., justify_text, word_sorter).
  3. Run the provided test cases to ensure correctness in your environment.
  4. Adapt the logic to your own challenge or project, using the discussed idioms as a guide.

Enjoy the solutions, and feel free to contribute your own take on the challenges!

Case handling

The examples and explanation of core techniques make it both beginner‑friendly and technically sound.

2026.06 CƔD YN GYMRAEG

Weekly collections

NICEPERL’s lists

  • Great CPAN modules released last week.
  • A couple of entries sneaked in by Gabor.

WhatsApp

Do you use WhatsApp? Join the Perl Maven chat group!

Paris.pm monthly meeting

  • Date: March 11, 2025

German Perl/Raku Workshop 2026 in Berlin

  • Date: March 16‑18, 2025

The Perl and Raku Conference 2026

  • Date & location: June 26‑29, 2026, Greenville, SC, USA

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!

Ā© Copyright Gabor Szabo

The articles are copyright the respective authors.

0 views
Back to Blog

Related posts

Read more Ā»