<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gabor Szabo</title>
    <description>The latest articles on DEV Community by Gabor Szabo (@szabgab).</description>
    <link>https://dev.to/szabgab</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F36720%2F9b6106f4-f64e-47c6-8963-82a80ca0eda4.jpg</url>
      <title>DEV Community: Gabor Szabo</title>
      <link>https://dev.to/szabgab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/szabgab"/>
    <language>en</language>
    <item>
      <title>Perl 🐪 Weekly #782 - Perl v5.44</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 20 Jul 2026 10:24:22 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-782-perl-v544-186n</link>
      <guid>https://dev.to/szabgab/perl-weekly-782-perl-v544-186n</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/782.html" rel="noopener noreferrer"&gt;Perl Weekly 782&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;Finally we had maintenance release of &lt;strong&gt;Perl v5.44&lt;/strong&gt; on 15th July. This is the first release which I watched the process very closely by joining the &lt;a href="https://www.nntp.perl.org/group/perl.perl5.porters" rel="noopener noreferrer"&gt;P5P Mailing List&lt;/a&gt;. I have high respect to each core member. The amount of work that goes into each release is unbelievable. They discuss every minute details before commit. It's fascinating just reading the discussion. You get to know so many different aspects. The best part is anyone can take part in the discussion. Feel free to share your concern and suggestion. I am sure you will get instant response from one of the core team members.&lt;/p&gt;

&lt;p&gt;As I am talking about Perl release, I came across something very interesting, &lt;a href="https://perl.petamem.com/" rel="noopener noreferrer"&gt;Parallel Perl&lt;/a&gt;. It is also referred as &lt;strong&gt;pperl&lt;/strong&gt;. As documented, it is next-generation Perl 5 runtime written in Rust, with JIT and auto-parallelization. If I am not wrong, &lt;strong&gt;Perl&lt;/strong&gt; is written in &lt;strong&gt;C&lt;/strong&gt;, does that mean &lt;strong&gt;Rust&lt;/strong&gt; is the new &lt;strong&gt;C&lt;/strong&gt;? I don't know either of them enough to read the source code. &lt;strong&gt;Rust&lt;/strong&gt; has been making some noise in the Perl community.&lt;/p&gt;

&lt;p&gt;Another big announcement by &lt;strong&gt;Salve J. Nilsen&lt;/strong&gt; about the &lt;a href="https://security.metacpan.org/2026/07/15/april-task-force-announcement.html" rel="noopener noreferrer"&gt;April Task Force&lt;/a&gt;. It sounds very heavy loaded. It is nice to see TPRF taking the security matter seriously. With the dedicated team, we are in a safe hands.&lt;/p&gt;

&lt;p&gt;Don't forget to try the new features in v5.44 and share your experience with us. Enjoy the rest of the newsletter.&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Mohammad Sajid Anwar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Announcements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://security.metacpan.org/2026/07/15/april-task-force-announcement.html" rel="noopener noreferrer"&gt;Announcing the April Task ForcePermalink&lt;/a&gt;by Salve Nilsen
&lt;/h3&gt;

&lt;p&gt;April Task Force is set up to strengthen the CPANSec CNA Function, improve the security posture of CPAN and Perl, and to help prepare these communities for the impact expected from the general availability of security analysis-capable Large Language Models.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/ron_savage/2026/07/announce-perlwiki-v-150-mojowiki-v-121-etc.html" rel="noopener noreferrer"&gt;ANNOUNCE: Perl.Wiki V 1.50, Mojo.Wiki V 1.21 etc&lt;/a&gt;by Ron Savage
&lt;/h3&gt;

&lt;p&gt;Two wikis, CPAN metacurator and Tree Cladogram/DAG are now available in the latest release.&lt;/p&gt;




&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/dbic-vs-dbio/" rel="noopener noreferrer"&gt;DBIx::Class vs DBIO&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;I took a moment off writing the book on DBIx::Class to explore DBIO, a new competitor in the Perl ORM sector. I faced some difficulties installing the system but shared useful comparisons of standard table schemas, result classes, and test cases demonstrating the similarity.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/dbic-sql-join/" rel="noopener noreferrer"&gt;SQL JOIN using DBIx::Class&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, I share the application of different SQL JOINs within the database application created using DBIx::Class. It illustrates the four important types of joins using an example of unit testing which employs User and Profile tables.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/flatpak-with-perl/" rel="noopener noreferrer"&gt;Flatpak with Perl&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this tutorial, I show how to effectively use Flatpak to containerise their Perl script in a sandbox that is isolated from the network. Using a manifest file that pulls in dependencies from CPAN, I explain how to compile and run their Perl application across all possible modern Linux distributions without running into any trouble.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/solid-using-perl/" rel="noopener noreferrer"&gt;SOLID using Perl&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Having done the book on Design Patterns, it is time to talk about Design Principles. In this post, I look at SOLID design principles using Perl.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/ioc-using-perl/" rel="noopener noreferrer"&gt;IoC using Perl&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Having done Design Patterns and Design Principles in Perl, it is natural to discuss Inversion of Control (IoC) next.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.perl.com/article/three-ways-to-write-a-table-in-podlite/" rel="noopener noreferrer"&gt;Three ways to write a table in Podlite&lt;/a&gt;by Aliaksandr Zahatski
&lt;/h3&gt;

&lt;p&gt;In the article, Aliaksandr Zahatski investigates the capacities for grid creation inherent in the block-markup language Podlite. The article elaborates various specific syntax types—text mode that suits for performing quick note-taking, structure block format that is meant for cell-spanning arrangements and rich content, as well as data-driven integration for processing unformatted CSV or TSV files.&lt;/p&gt;




&lt;h2&gt;
  
  
  Grants
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/pevans_core_dev_june_2026" rel="noopener noreferrer"&gt;PEVANS Core Perl 5: Grant Report for June 2026 &lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/maintaining_perl_tonyc_june_2026" rel="noopener noreferrer"&gt;Maintaining Perl (Tony Cook) June 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/maintaining_perl_dave_mitchell_june_2026" rel="noopener noreferrer"&gt;Maintaining Perl 5 Core (Dave Mitchell): June 2026 &lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-383" rel="noopener noreferrer"&gt;The Weekly Challenge - 383&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Similar List" and "Nearest RGB". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-382" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 382&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Hamiltonian Cycle" and "Replace Question Mark" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/hamiltonian-question-mark.html" rel="noopener noreferrer"&gt;Hamiltonian Question Mark&lt;/a&gt;by Arne Sommer &lt;a href="https://www.linkedin.com/in/arnesommer/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This blog post shows the advantages of Raku by using simple recursion and backtracking for the challenging Hamiltonian Cycle problem as well as using a simple iterative queue for string replacement. Each script is provided with documentation and numerous test outputs which provide excellent learning aid for novice and expert Raku users alike.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/boblied/pwc-382-hamiltonian-cycle-8no"&gt;PWC 382 Hamiltonian Cycle&lt;/a&gt;by Bob Lied
&lt;/h3&gt;

&lt;p&gt;A superb analysis of Hamiltonian Cycle is shared in this post. Bob has superbly converted the issue into an interesting graph theory problem and has effectively proposed a powerful breadth-first search strategy. With the provision of efficient data structures, exact mathematical restrictions, and clear explanations of how the code works, this analysis is highly useful to all the persons who want to learn algorithmic Perl.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/boblied/pwc-382-replace-question-marks-3enn"&gt;PWC 382 Replace Question Marks&lt;/a&gt;by Bob Lied
&lt;/h3&gt;

&lt;p&gt;Bob kicks off the post by presenting an interesting technique - a concise, built-in kind of shell-like one-liner with the use of glob - followed by a discussion of a sophisticated queue-based substitution algorithm. The final description proves to be a great demonstration of how Perl can tackle string manipulation problems effectively and concisely, as a result of using smart resources like index.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/07/perl_weekly_challenge_week_382.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 382&lt;/a&gt;by Jaldhar H. Vyas &lt;a href="https://www.linkedin.com/in/jaldhar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This article provides amazing, well-analysed insights on the Perl Weekly Challenge #382, including the two similar solutions in Raku and Perl. Jaldhar excellently solves the Hamiltonian Cycle problem while defining it using adjacent graph lists. Plus, valuable information is given on how to deal with certain peculiarities of the languages.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/07/17/ch-382.html" rel="noopener noreferrer"&gt;Hamiltonian Marks&lt;/a&gt;by Jorg Sommrey
&lt;/h3&gt;

&lt;p&gt;The article presents an outstanding technical analysis of Perl Weekly Challenge #382 using tools like Maxima and J. Jorg skillfully emphasises the greatly effective graph-theory libraries in Maxima for a quick solution of the NP-complete problem of Hamiltonian Cycle using CPAN modules such as List::Gather and Math::Prime::Util to create clear Perl code. Programmers looking for unusual mathematical syntax and language profiling will enjoy the reading.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/07/13/PWC382/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 382&lt;/a&gt;by W Luis Mochan &lt;a href="https://www.linkedin.com/in/luis-mochan-a9563b10/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Perl Weekly Challenge #382 is reviewed in an excellent and in-depth way in this article. W. Luis Mochan wins the hearts of the readers by putting forward his compact 3-line regex-based recursive solution and then presenting the optimal way of implementation in the form of the pre-computed follower map (%follower).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-382/matthias-muth/README.md" rel="noopener noreferrer"&gt;The Recursive Challenge&lt;/a&gt;by Matthias Muth &lt;a href="https://www.linkedin.com/in/matthias-muth-2398947/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Matthias demonstrates good layout for the code and good documentation for the code which has made it better to read. This implementation will be beneficial for engineers who want to learn about modular problem solving in Perl.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/uP" rel="noopener noreferrer"&gt;The World Turned Upside Down!&lt;/a&gt;by Packy Anderson &lt;a href="https://www.linkedin.com/in/packy-anderson/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This article presents an incredibly imaginative technical analysis of the Perl Weekly Challenge #382 by the fantastic use of the inversion of an algorithm. Rather than going through all the remaining values to find their sums as squares, Packy cycles through previously-calculated squares and checks whether the differential exists, which results in a much more efficient search. It is extremely entertaining while maintaining a perfect balance between detailed explanation of graph theory and utilising code in different languages.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/382" rel="noopener noreferrer"&gt;Hamilton’s questions&lt;/a&gt;by Peter Campbell Smith
&lt;/h3&gt;

&lt;p&gt;The article talks about Perl Weekly Challenge #382 in great detail, being proposed by the same person who initially proposed Hamiltonian Cycle to the community. The write-up provides historical perspective on the problem while introducing a rather ingenious way of using string matching (qq[~$possible~]) to keep track of graph adjacency and implement the task in a full Perl.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc382-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 382: Replace Question Mark&lt;/a&gt;by Reinier Maliepaard
&lt;/h3&gt;

&lt;p&gt;In this article, you will see a clear and straightforward solution for Task 2 of Perl Weekly Challenge #382. Reinier has perfectly delivered the main idea of the task - generating all binary combinations to replace the question marks in a very simple manner without making it unnecessarily complex. This article would be a brilliant assistance to anyone who would like to implement this task in an easy and efficient manner and yet ensure proper substitution of the strings.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/07/The_Weekly_Challenge_382__Questioning_the_Cycle.html" rel="noopener noreferrer"&gt;Questioning the Cycle&lt;/a&gt;by Roger Bell West
&lt;/h3&gt;

&lt;p&gt;In this post, you will find an amazing technical analysis of Perl Weekly Challenge #382, with valuable insights based on a complex multi-language approach including not only Raku but also Scala. This particular post stands out from the crowd due to the fact that Roger has created a complete stand-alone testing function (is_adjacentsquared), which allows him to confirm results produced by the algorithm and put to work an effective neighbor mapping approach based on Raku’s native Set types. The article is very informative and will be of great help for those interested in the issues of algorithmic safety, depth-first search optimization, and polyglot programming.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-the-hamiltonian-question-4eig"&gt;The Hamiltonian Question&lt;/a&gt;by Simon Green &lt;a href="https://www.linkedin.com/in/swg-au/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Here you will find an outstanding technical critique of the Perl Weekly Challenge #382 through the lens of Python implementations of both challenges. Simon brings a very eloquent readable solution to Task 1 which deals with the Hamiltonian Cycle graph traversal and also shares personal details about Task 2 which was based on a real-time coding-interview question. The paper demonstrates excellent use of modern algorithm patterns and provides good data on how efficient the solution is and what its limitations are.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rakudo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://rakudoweekly.blog/2026/07/06/2026-27-trf-lives/" rel="noopener noreferrer"&gt;2026.27 TRF Lives!&lt;/a&gt;by Elizabeth Mattijsen &lt;a href="https://www.linkedin.com/in/elizabeth-mattijsen-7483002/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;by Miguel Prz
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/07/dcix-17-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Perl development using AI + Open Source (online)&lt;/a&gt;July 29, 2026
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.meetup.com/hacklafayette/" rel="noopener noreferrer"&gt;Purdue Perl Mongers (HackLafayette) - TBA&lt;/a&gt;August 12, 2026
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.meetup.com/hacklafayette/" rel="noopener noreferrer"&gt;Purdue Perl Mongers (HackLafayette) - TBA&lt;/a&gt;September 9, 2026
&lt;/h3&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #780 - TRF</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 06 Jul 2026 07:27:12 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-780-trf-37cm</link>
      <guid>https://dev.to/szabgab/perl-weekly-780-trf-37cm</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/780.html" rel="noopener noreferrer"&gt;Perl Weekly 780&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;The Raku Foundation (TRF) was officially announced last month, as suggested in the &lt;a href="https://blogs.perl.org/users/damian_conway/2026/07/trf-lives.html" rel="noopener noreferrer"&gt;post&lt;/a&gt; by &lt;strong&gt;Damian Conway&lt;/strong&gt;. I am super happy for the core team behind Raku.&lt;/p&gt;

&lt;p&gt;Does that mean there is no more &lt;strong&gt;The Perl and Raku Foundation (TPRF)&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;Now that TRF is live, it would make sense to go back to the good old The Perl Foundation (TPF). I don't know the technical details yet, but I think it is a great move. Now Perl and Raku can live in their own worlds without any interference. It is good to see &lt;strong&gt;Damian&lt;/strong&gt; promoting Raku. If I am not mistaken, even &lt;strong&gt;Larry&lt;/strong&gt; was once involved in the project.&lt;/p&gt;

&lt;p&gt;For all Perl fans, very soon there will be a major release, &lt;strong&gt;Perl v5.44&lt;/strong&gt;. I am eagerly waiting for it.&lt;/p&gt;

&lt;p&gt;Enjoy rest of the newsletter.&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Mohammad Sajid Anwar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Announcements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/veesh/2026/07/perl-lsp-version-060.html" rel="noopener noreferrer"&gt;perl-lsp version 0.6.0&lt;/a&gt;by Veesh Goldman
&lt;/h3&gt;

&lt;p&gt;The version 0.6.0 is now available on crates.io &amp;amp; in both VS Code and The Zed Editor. This is a huge milestone for the Perl-LSP project with some great improvements such as smart type narrowing for block variables, smart inherited method renewal using inherited methods, and different heatmap cli for analysing function complexity and usage.&lt;/p&gt;




&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/dragostrif/automate-perl-module-testing-with-github-actions-43p9"&gt;Automate Perl module testing with GitHub Actions&lt;/a&gt;by Dragos Trif
&lt;/h3&gt;

&lt;p&gt;This is a very handy guide that explains how to set up a CI/CD pipeline for your Perl projects via GitHub Actions. The guide elaborates on what steps to follow so that when you push code, all of the projects automatically run tests against several different Perl versions and several different operating systems. This will allow developers to check for compatibility on multiple platforms, while also providing developers with a way to keep their code at high quality with as little manual work as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://perlhacks.com/2026/07/how-one-pull-request-took-apphttpthis-to-version-1-0/" rel="noopener noreferrer"&gt;How One Pull Request Took App::HTTPThis to Version 1.0&lt;/a&gt;by Dave Cross &lt;a href="https://www.linkedin.com/in/davorg/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A simple pull request intended to improve the honesty of a startup message caused a rewrite of the architecture for App::HTTPThis. The original binding configuration was set to all interfaces, but by modifying it to use 127.0.0.1, and providing targeted support for the Windows Subsystem for Linux (WSL), this tool has come a very long way to reach a very solid, secure, cross-platform milestone for release version of 1.0.0.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/chansen/2026/07/reading-utf-8-at-gbs.html" rel="noopener noreferrer"&gt;Reading UTF-8 at GB/s&lt;/a&gt;by Christian Hansen
&lt;/h3&gt;

&lt;p&gt;Christian highlights a bottleneck in Perl's read operator regarding how it counts UTF-8 sequences and introduces a high-performance workaround via Unicode::UTF8::read_utf8. By reading and validating UTF-8 streams in a single pass, this new feature achieves impressive speeds—delivering 7x to 16x faster throughput than native reads.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/randal_l_schwartz/2026/07/the-ai-revolution-is-validating-40-years-of-perl-philosophy.html" rel="noopener noreferrer"&gt;The AI Revolution is Validating 40 Years of Perl Philosophy&lt;/a&gt;by Randal Schwartz
&lt;/h3&gt;

&lt;p&gt;Randal examines the relationship between the emergence of large language models and Larry Wall’s original concept of Perl as a language based on context (semiotics) and language. The shift toward a semantic/conceptual view of programming allows AI systems to start operating based on principles that have been used by Perl programmers all along, rather than forcing us to program like mathematical devices.&lt;/p&gt;




&lt;h2&gt;
  
  
  Web
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/soap-and-perl/" rel="noopener noreferrer"&gt;SOAP and Perl&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This article investigates both the past and the present of using Perl to connect to SOAP (Simple Object Access Protocol) web services. The article discusses how useful an existing SOAP:Lite module is for creating applications that can still be used today by legacy companies, along with performance related suggestions when working with XML payloads, WSDL files, and options for building robust API integration using modern technology.&lt;/p&gt;




&lt;h2&gt;
  
  
  CPAN
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/yairlenga/2026/06/jsonjsonfold---a-cpan-module-for-compact-readable-json-formatting.html" rel="noopener noreferrer"&gt;JSON::JSONFold&lt;/a&gt;by Yair Lenga
&lt;/h3&gt;

&lt;p&gt;A fresh CPAN module that helps you read compact  JSON and create pretty printed representations of those same objects. JSON::JSONFold does this by building on top of existing serialisers to fold small/simple structures onto a single line, while also aligning grid-like data.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-381" rel="noopener noreferrer"&gt;The Weekly Challenge - 381&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Same Row Column" and "Smaller Greater Element". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-380" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 380&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Sum of Frequencies" and "Reverse Degree" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://deadmarshal.blogspot.com/2026/06/twc380.html" rel="noopener noreferrer"&gt;TWC380&lt;/a&gt;by Ali Moradi
&lt;/h3&gt;

&lt;p&gt;In this post, you'll find extremely concise and idiomatic code solutions written in Perl. Utilising the many powerful built-in list functions in Perl's List::Util module (e.g., max() and sum0()), as well as utilising clever array slicing to achieve succinctness, Ali has written very elegant and extremely efficient code that solves each of the two assigned problems in no more than just a few lines of code and makes use of the modules' built-in test coverage features.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/reverse-sum.html" rel="noopener noreferrer"&gt;Reverse Sum&lt;/a&gt;by Arne Sommer &lt;a href="https://www.linkedin.com/in/arnesommer/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;An excellent, organised demonstration of Raku's unique language capabilities for Weekly Challenge #380. Author beautifully combines native features, including Bag data structures and state variables, by developing clear, practical solutions. In addition, Arne also provides thorough testing to validate the logic correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/07/perl_weekly_challenge_week_380.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 380&lt;/a&gt;by Jaldhar H. Vyas
&lt;/h3&gt;

&lt;p&gt;This post presents a very interesting and informative comparison of Perl and Raku in regard to Weekly Challenge #380 by visually demonstrating some of the advanced features of the two programming languages, namely by using the (s///ger) operator as a frequency counter in the same manner in both Perl and Raku and providing an excellent example of how Perl's built in index function has recently improved, allowing for an easier way of indexing various items.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/07/03/ch-380.html" rel="noopener noreferrer"&gt;Reverse Frequencies&lt;/a&gt;by Jorg Sommrey
&lt;/h3&gt;

&lt;p&gt;The blog post does an amazing job of explaining weekly challenge #380 technically through comparing the two very different programming paradigms of Perl and J. The use of multi-dimensional hashes in Perl gives an aesthetically pleasing and simple way to organise information into categories, whereas the functional style of J provides a mathematically elegant solution for dealing with arrays and their indices, as well as character mapping.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://kolouch.net/perlweeklychallenge/blog-380.html" rel="noopener noreferrer"&gt;The Weekly Challenge 380&lt;/a&gt;by Lubos Kolouch
&lt;/h3&gt;

&lt;p&gt;In this article, solutions presented were derived by showing the strengths of each language by providing a clear and technical comparison of how Perl's regex-based string manipulation can be contrasted with the expressive nature of Python's list comprehensions and the built-in dictionary structures.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/06/29/PWC380/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 380&lt;/a&gt;by W Luis Mochan &lt;a href="https://www.linkedin.com/in/luis-mochan-a9563b10/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;W. Luis Mochán's innovation in reducing the complexity of frequency mapping, to succinct "1.5-liner" executable format as well as clever strategy on Task 1 all contribute to his demonstrated skills at successfully combining structural simplicity and robustness of execution presented via use of multiple try/catch validation blocks, to form an elite standard for executing Perl hacks.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/manwar/perlweeklychallenge-club/blob/master/challenge-380/matthias-muth/README.md" rel="noopener noreferrer"&gt;Watch Your Zeros, and Don’t Get Off by One!&lt;/a&gt;by Matthias Muth &lt;a href="https://www.linkedin.com/in/matthias-muth-2398947/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Matthias takes the opportunity to highlight edge cases, to demonstrate how to use case insensitive file name matching (using the fc function) instead of zero based indexing and loop multipliers, and to use an innovative way of adding a safety net around the injection of zeros to avoid producing undefined exceptions.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/t4" rel="noopener noreferrer"&gt;Just like honey, baby, from the bee&lt;/a&gt;by Packy Anderson &lt;a href="https://www.linkedin.com/in/packy-anderson/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Packy gives a detailed and multilingual look at Weekly Challenge #380 with his solutions in Raku, Perl, Python and Elixir. His use of "bag" data structures in all four languages shows how the same underlying frequency logic is implemented across those four languages, and also provides important technical details about special edge case code requirements for Raku, such as preventing -Inf math results.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/380" rel="noopener noreferrer"&gt;Frequencies and degrees&lt;/a&gt;by Peter Campbell Smith
&lt;/h3&gt;

&lt;p&gt;Peter utilising natively fast ASCII byte operations and provides a very elegant and performance-based method to solving weekly challenge. With the help of integer array indices created through the ord() function instead of performing heavier hash lookups, Peter produces an outstandingly fast frequency counter.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/07/The_Weekly_Challenge_380__Reverse_the_Frequency__Kenneth.html" rel="noopener noreferrer"&gt;Reverse the Frequency, Kenneth&lt;/a&gt;by Roger Bell West
&lt;/h3&gt;

&lt;p&gt;The post demonstrates the use of both idiomatic Perl and a clever implementation of it in PostScript. Roger's ability to transfer algorithmic logic between these two very different styles of programming (high level hashes for frequency counting in perl, to low level stack manipulations and dictionary management for postscript) shows great creativity, as well as the experience to structurally solve programming problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/the-race-car-has-rhythm-5dd1"&gt;The race car has rhythm&lt;/a&gt;by Simon Green &lt;a href="https://www.linkedin.com/in/swg-au/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In the post, Simon has shown how the multiple paradigms can be assimilated into one cohesive framework of the same operational flow; ie. Using Python's high-level native collection's Counter module, one can progress in a relatively seamless manner all the way down to Perl's low-level core tools using split and explicit hash manipulation techniques.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rakudo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://rakudoweekly.blog/2026/06/29/2026-26-release-194/" rel="noopener noreferrer"&gt;2026.26 Release #194&lt;/a&gt;by Elizabeth Mattijsen &lt;a href="https://www.linkedin.com/in/elizabeth-mattijsen-7483002/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;by Miguel Prz
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/07/dcvii-17-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;;&lt;br&gt;&lt;a href="https://niceperl.blogspot.com/2026/07/dcxxix-metacpan-weekly-report.html" rel="noopener noreferrer"&gt;MetaCPAN weekly report&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Perl development using AI (online)&lt;/a&gt;July 8, 2026
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://paris.mongueurs.net/" rel="noopener noreferrer"&gt;Paris.pm monthly meeting&lt;/a&gt;July 8, 2026
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.meetup.com/hacklafayette/" rel="noopener noreferrer"&gt;Purdue Perl Mongers (HackLafayette) - TBA&lt;/a&gt;July 8, 2026
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;July 14, 2026
&lt;/h3&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #779 - LinkedIn and the Perl Weekly</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 29 Jun 2026 07:39:29 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-779-linkedin-and-the-perl-weekly-62l</link>
      <guid>https://dev.to/szabgab/perl-weekly-779-linkedin-and-the-perl-weekly-62l</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/779.html" rel="noopener noreferrer"&gt;Perl Weekly 779&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;In the 15 years since the Perl Weekly was first published we included posts from more than 800 authors. For 114 of them we have their LinkedIn profile, for 264 we have their PAUSE id, and for 200 we have a picture. I would love to get your help finding more. You can see the &lt;a href="https://perlweekly.com/authors" rel="noopener noreferrer"&gt;full list of authors&lt;/a&gt;. The source is in the &lt;code&gt;src/authors.json&lt;/code&gt; file in our &lt;a href="https://github.com/szabgab/perlweekly/" rel="noopener noreferrer"&gt;repository&lt;/a&gt;. Please help us locate more information about our authors. Send a PR or send me an email with links to the profiles of the authors. (If you send PR send a separate one for each author. That will make it easier to accept them.)&lt;/p&gt;

&lt;p&gt;To make the LinkedIn information more useful I've also update the templates of the Perl Weekly and in each issue we'll include the link to the LinkedIn profile of each author. If we have it on file.&lt;/p&gt;

&lt;p&gt;Discussing posts on Reddit: Many of the Perl Weekly posts have appeared on Reddit and some have active discussion. I used to embed links to these discussions in the text of the entry, but now Reddit got a separate field in our data files. From now we can include a little Reddit logo next to each entry linking to the respective Reddit post. I hope this will allow you to get involved in the discussion.&lt;/p&gt;

&lt;p&gt;We had two excellent presentations at the Perl Maven online event last week. You can find the videos below. Make sure you 'like' them. You can &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;register to the next event&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, if you'd like to join our WhatsApp or Telegram chat group about Perl, &lt;a href="https://szabgab.com/contact" rel="noopener noreferrer"&gt;contact me&lt;/a&gt; via the respective platform and I'll add you to the channel.&lt;/p&gt;

&lt;p&gt;Enjoy your week!&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Gabor Szabo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Announcements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/jjn1056/pagi-distribution-split-1kdo"&gt;PAGI Distribution split on CPAN&lt;/a&gt; &lt;a href="https://www.reddit.com/r/perl/comments/1ugpccr/pagi_distribution_split_on_cpan/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1pqo4zwj4xt34ca0oqks.png" alt="Reddit" width="32" height="32"&gt;&lt;/a&gt;by John Napiorkowski &lt;a href="https://www.linkedin.com/in/jnapiorkowski/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The news: PAGI is now three CPAN distributions instead of one. PAGI-Server — the reference server; PAGI-Tools — the application toolkit; PAGI — the specification;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/ron_savage/2026/06/announce-perlwiki-v-149-etc.html" rel="noopener noreferrer"&gt;ANNOUNCE: Perl.Wiki V 1.49, etc&lt;/a&gt;by Ron Savage
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/jjn1056/perl-pagi-middleware-o5b"&gt;Perl PAGI Middleware&lt;/a&gt;by John Napiorkowski &lt;a href="https://www.linkedin.com/in/jnapiorkowski/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A port of the sample app from What Is Middleware? - which builds the same three-layer stack in Plack/PSGI (Perl) and Starlette/ASGI (Python) - to PAGI, an async, ASGI-style application interface for Perl.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tedium.co/2026/06/22/matts-script-archive-retrospective/" rel="noopener noreferrer"&gt;What Was Matt Thinking?&lt;/a&gt; &lt;a href="https://www.reddit.com/r/perl/comments/1udkbi8/matts_script_archive_the_scripts_that_reshaped/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1pqo4zwj4xt34ca0oqks.png" alt="Reddit" width="32" height="32"&gt;&lt;/a&gt;The high schooler who developed everyone’s forums and guestbooks in 1996 didn’t really think about security when he was building all that software. But Matt’s Script Archive was more than exploits.
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/lichtkind/2026/06/gtc-220-pro-designer.html" rel="noopener noreferrer"&gt;GTC 2.20 Pro designer&lt;/a&gt;by Herbert Breunung
&lt;/h3&gt;

&lt;p&gt;GTC 2.20 brings a huge amount of new features again (described in this post) and is starting an additional, more trimmed down, high level API, geared more toward what designers expect. But it also comes with new documentation and error handling, the two most important things that were missing for a professional distribution.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://perlhacks.com/2026/06/choosing-the-right-database-abstraction/" rel="noopener noreferrer"&gt;Choosing the Right Database Abstraction&lt;/a&gt; &lt;a href="https://www.reddit.com/r/perl/comments/1uhsrlk/choosing_the_right_database_abstraction_perl_hacks/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1pqo4zwj4xt34ca0oqks.png" alt="Reddit" width="32" height="32"&gt;&lt;/a&gt;by Dave Cross &lt;a href="https://www.linkedin.com/in/davorg/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Dave writes: 'A question came up recently in the Perl community asking whether, in a Mojolicious application, it’s better to use DBIx::Class or a Mojolicious-specific module like Mojo::Pg. It's an interesting question, but I think it's asking the wrong thing.'&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://metacpan.org/pod/DBIx::QuickORM::Manual::QuickStart" rel="noopener noreferrer"&gt;DBIx::QuickORM - Alternative to DBIx::Class/DBIO &lt;/a&gt; &lt;a href="https://www.reddit.com/r/perl/comments/1ui2nm3/dbixquickorm_alternative_to_dbixclassdbio/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1pqo4zwj4xt34ca0oqks.png" alt="Reddit" width="32" height="32"&gt;&lt;/a&gt;by Chad Granum &lt;a href="https://www.linkedin.com/in/chad-granum-52b18317/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Chad writes: 'This weekend at the perl and raku conference I did a presentation on how to move forward from the current state of DBIx::Class and its lack of new development. We discussed several options including an alternative I have been writing. I have never liked DBIx::Class, so I tried to write something that felt more intuitive to how my brain works. It was suggested that I post it here.'&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/james/2026/06/introducing-constantstring-and-constantstringuc.html" rel="noopener noreferrer"&gt;Introducing constant::string and constant::string::uc&lt;/a&gt;by James Wright
&lt;/h3&gt;

&lt;p&gt;James writes: 'If you're like me, you use a constant a lot (I may overuse it). I often use it to turn typos in words and fields into compile-time errors, and for that I usually create constants that either are the named the same as the word, or the word uppercased.'&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://rawley.xyz/posts/html-composer.html" rel="noopener noreferrer"&gt;Introducing HTML::Composer and general musings about Perl HTML templating&lt;/a&gt; &lt;a href="https://www.reddit.com/r/perl/comments/1ugfw0f/introducing_htmlcomposer_and_general_musings/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1pqo4zwj4xt34ca0oqks.png" alt="Reddit" width="32" height="32"&gt;&lt;/a&gt;by Rawley Fowler
&lt;/h3&gt;

&lt;p&gt;Rawley writes: 'Perl has some great templating libraries for HTML. Most of them are pretty fast, and do what you want.  However, they all share a common "problem", they make me write HTML. I'm a Perl developer, I like writing Perl, I want to write Perl, so when I have to switch contexts to HTML it annoys me.' HTML::Composer is the answer.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://metacpan.org/pod/DBIO" rel="noopener noreferrer"&gt;DBIO - A DBIx::Class replacement&lt;/a&gt; &lt;a href="https://www.reddit.com/r/perl/comments/1ug47vv/dbio_a_dbixclass_replacement/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1pqo4zwj4xt34ca0oqks.png" alt="Reddit" width="32" height="32"&gt;&lt;/a&gt;by brian d foy
&lt;/h3&gt;

&lt;p&gt;DBIO - Native relational mapping for Perl, built on DBI&lt;/p&gt;




&lt;h2&gt;
  
  
  Videos
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://youtu.be/D1KMW8q7d18" rel="noopener noreferrer"&gt;Perl development using Ollama and local models Claude and VS Code&lt;/a&gt;by Dmytro Lyakh
&lt;/h3&gt;

&lt;p&gt;The recordings from the recent &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;online Perl Maven session&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://youtu.be/6wYiX2lFbo8" rel="noopener noreferrer"&gt;Improving ptkdb, the graphical debugger of Perl using ChatGPT&lt;/a&gt;by Matthew Persico
&lt;/h3&gt;

&lt;p&gt;The recordings from the recent &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;online Perl Maven session&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Perl
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/06/this-week-in-psc-230-2026-06-22.html" rel="noopener noreferrer"&gt;This week in PSC (230) | 2026-06-22&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-380" rel="noopener noreferrer"&gt;The Weekly Challenge - 380&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Sum of Frequencies" and "Reverse Degree". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-379" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 379&lt;/a&gt;by Mohammad Sajid Anwar &lt;a href="https://www.linkedin.com/in/mohammadanwar/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Reverse String" and "Armstrong Number" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://deadmarshal.blogspot.com/2026/06/twc379.html" rel="noopener noreferrer"&gt;TWC379&lt;/a&gt;by Ali Moradi
&lt;/h3&gt;

&lt;p&gt;The Blog Post by Ali provides a highly efficient and minimalist way of coding in Perl by offering solutions to the problem set of The Weekly Challenge #379. Ali uses a brilliant chop loop to reverse a string and a concisely written higher-order grep block to determine Armstrong numbers in the given base. This shows that Perl can be written very compactly but also in an extremely expressive manner.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/armstring-or-strong.html" rel="noopener noreferrer"&gt;Armstring or Strong&lt;/a&gt;by Arne Sommer &lt;a href="https://www.linkedin.com/in/arnesommer/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Arne has given us a great example of Raku's toolkit through the Weekly Challenge 379. He uses many of the Raku methods (comb, pop, base, etc.) to write very concise and effective code for both reversing a string and finding base-specific Armstrong numbers. If you want your Raku skillset to grow in terms of both abilities and syntax style, you should definitely read this.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/06/perl_weekly_challenge_week_379.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 379&lt;/a&gt;by Jaldhar H. Vyas
&lt;/h3&gt;

&lt;p&gt;This post does an excellent job of illustrating how the relationship between Perl and Raku has changed over time, and uses that to illustrate how these two languages handle identical logic with different syntaxes. It uses examples of how Perl uses the classic, reliable Perl syntax and how Raku provides its own modern, built-in methods of extracting a digit from a number with the modern feature of converting between bases instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/06/28/ch-379.html" rel="noopener noreferrer"&gt;There Is More Than One Way To Power&lt;/a&gt;by Jorg Sommrey
&lt;/h3&gt;

&lt;p&gt;This article contains a clear, consistent format outlining all parts of the challenge as well showing ingenuity in using both the Perl and J languages. The examples of different ways to reverse a string with both in-place reversal and use of PDL slicing techniques, along with the compact implementation of variable-base Armstrong numbers using a functional programming paradigm, highlight the insights and education obtained by polyglot developers from this article.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://kolouch.net/perlweeklychallenge/blog-379.html" rel="noopener noreferrer"&gt;The Weekly Challenge 379&lt;/a&gt;by Lubos Kolouch
&lt;/h3&gt;

&lt;p&gt;Lubos writing style contains excellent quality, idiomatic code and brief, easily-understood explanations of the different ways to break down difficult logical or enough to solve complicated mathematical problems, so they are accessible to all (even to those with no programming experience).&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/06/22/PWC379/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 379&lt;/a&gt;by W Luis Mochan &lt;a href="https://www.linkedin.com/in/luis-mochan-a9563b10/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;W. Luis Mochan has demonstrated his expertise by providing concise code that uses very little coding space. He created very efficient single and double lines of code (Perl) for each of the weekly challenge entry solutions. The way he approached Armstrong Numbers with a dynamic array that uses rolling bases, rather than normal division to calculate base conversion points, is astoundingly creative, instructional and well documented.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-379/matthias-muth#readme" rel="noopener noreferrer"&gt;Just Do It Yourself!&lt;/a&gt;by Matthias Muth &lt;a href="https://www.linkedin.com/in/matthias-muth-2398947/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The professional quality of Matthias's solution to the Perl Weekly Challenge is evidenced by the exceptional level of detail. Clearly, the README describes both the underlying logic as well as the algorithms used. The actual code is very idiomatic, clean and well-structured. This represents an excellent example of good software engineering practices and is a great resource for the community to learn from.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/sE" rel="noopener noreferrer"&gt;I see strings reversed… sum numbers, too…&lt;/a&gt;by Packy Anderson &lt;a href="https://www.linkedin.com/in/packy-anderson/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Packy provides some ways to think about how to tackle the Perl Weekly Challenge. His approach is well-organised and very interesting. What stands out most is how much time he spends comparing Perl, Raku, Python and Elixir implementations to help the reader understand their differences. The way he explains each solution with examples is very effective, and it provides an excellent way for programmers looking to improve their skills with strings and scripts.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/379" rel="noopener noreferrer"&gt;Reversing and curious numbers&lt;/a&gt;by Peter Campbell Smith
&lt;/h3&gt;

&lt;p&gt;Peter puts a high value on creating code that uses clear, easy-to-read, well-maintained, and easy-to-write code rather than using complicated, convoluted, and multifaceted configurations. This makes the blog post very accessible to all levels of developers. It contains additional detail, educational material, and information in the public domain that should be of use to the developer community. There are also multiple edge cases addressed in this blog, and a comprehensive analysis of the data will make it very easy for the reader to follow through the examples provided.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/06/The_Weekly_Challenge_379__Reverse_Armstrong.html" rel="noopener noreferrer"&gt;Reverse Armstrong&lt;/a&gt;by Roger Bell West
&lt;/h3&gt;

&lt;p&gt;This blog covers Perl Weekly Challenge 379's solutions for string manipulation and narcissistic numbers in several different languages. Here, Roger, compares implementations of the same problem in Perl, Lua, PostScript, and Rust, illustrating how they each offer different approaches to performance optimisation and memory allocation. Overall, this approach allows him to provide great practical insight to readers on how the languages differ in these two areas.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-work-it-1j3a"&gt;Work it&lt;/a&gt;by Simon Green &lt;a href="https://www.linkedin.com/in/swg-au/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffjmm1b6nki5nhtvra81s.png" alt="LinkedIn" width="32" height="32"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post presents an extremely entertaining and informative dual-language analysis of Weekly Challenge #379, as well as an entertainingly framed musical presentation. In addition, the juxtaposition of the neatness of the Python loop construct with the traditional method of manipulating strings in Perl helps provide clear, easy-to-follow solutions to challenging technical questions, particularly when dealing with the conversion of multiple digit bases for Armstrong Numbers.&lt;/p&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;by Miguel Prz
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/06/dcvi-20-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Perl development using AI (online)&lt;/a&gt;July 8, 2026
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://paris.mongueurs.net/" rel="noopener noreferrer"&gt;Paris.pm monthly meeting&lt;/a&gt;July 8, 2026
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.meetup.com/hacklafayette/" rel="noopener noreferrer"&gt;Purdue Perl Mongers (HackLafayette) - TBA&lt;/a&gt;July 8, 2026
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;July 14, 2026
&lt;/h3&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #777 - Check your CPAN profile!</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 15 Jun 2026 06:26:09 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-777-check-your-cpan-profile-2l8d</link>
      <guid>https://dev.to/szabgab/perl-weekly-777-check-your-cpan-profile-2l8d</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/777.html" rel="noopener noreferrer"&gt;Perl Weekly 777&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;In the recent weeks I looked at a lot of MetaCPAN profiles (aka. author pages) such as that of &lt;a href="https://metacpan.org/author/MANWAR" rel="noopener noreferrer"&gt;MANWAR&lt;/a&gt;. If I could also find their LinkedIn profile I invited them to &lt;a href="https://www.linkedin.com/in/szabgab/" rel="noopener noreferrer"&gt;connect via LinkedIn&lt;/a&gt;. (If I have not sent you an invitation yet, then I guess I missed your profile. I'd be glad to get a connect request via LinkedIn.)&lt;/p&gt;

&lt;p&gt;I noticed that a large percentage of the people still have their &lt;b&gt;@cpan.org&lt;/b&gt; email address listed. Despite the fact that &lt;a href="https://log.perl.org/2026/04/cpanorg-email-forwarding-has-been-shut.html" rel="noopener noreferrer"&gt;cpan.org email forwarding has been shut down&lt;/a&gt; 6 weeks ago. That means people will get annoyed if hey try to contact you using that address.&lt;/p&gt;

&lt;p&gt;You could replace that address or hide it and offer other ways for people to contact you. Either of them is better than having a bad address.&lt;/p&gt;

&lt;p&gt;In addition, I noticed that some of the links people have there are not working. (e.g. incorrect link to their LinkedIn profile, or to their home page etc.)&lt;/p&gt;

&lt;p&gt;In order to fix these you probably first need to check and update your &lt;a href="https://pause.perl.org/" rel="noopener noreferrer"&gt;PAUSE account&lt;/a&gt;. After logging in look for the &lt;b&gt;Edit Account Info&lt;/b&gt; menu option. There you can list your email address and you can even decide if you'd like to have a visible address or not.&lt;/p&gt;

&lt;p&gt;Then you could take a look at your MetaCPAN profile. For this visit &lt;a href="https://metacpan.org/" rel="noopener noreferrer"&gt;MetaCPAN&lt;/a&gt;. Login in the top-right corner. If you don't remember whether you used GitHub or Google, don't worry. Inside you can connect them in the &lt;b&gt;Identities&lt;/b&gt; menu point. Then go to the &lt;b&gt;Profile&lt;/b&gt; menu point and update the fields there.&lt;/p&gt;

&lt;p&gt;Finally, if you have updated your profile after reading this, I'd be glad if you sent me an email so I'll know this messaged had some positive impact.&lt;/p&gt;

&lt;p&gt;Oh, and if you don't have a CPAN account and you have not uploaded anything yet, then what are you waiting for?&lt;/p&gt;

&lt;p&gt;Enjoy your week!&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Gabor Szabo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/chansen/2026/06/timestr---time-zones-and-leap-seconds.html" rel="noopener noreferrer"&gt;Time::Str - Time Zones and Leap Seconds&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Time::Str parses and formats date/time strings across 20+ standard formats, with an optional C/XS backend and nanosecond precision. The previous post, Introducing Time::Str, covered parsing and formatting. This one covers two additions, time zones and leap seconds, and ends with a note on the new C parsers. (&lt;a href="https://www.reddit.com/r/perl/comments/1u4qkgr/timestr_time_zones_and_leap_seconds/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt;)&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1u2gx9g/confused_about_a_few_parts_of_the_new_core_oop/" rel="noopener noreferrer"&gt;Confused about a few parts of the new Core OOP &lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1u1fq2v/memory_sharing_between_scripts/" rel="noopener noreferrer"&gt;Memory sharing between scripts&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1u0l438/first_record_in_implicit_n_loop_behaves/" rel="noopener noreferrer"&gt;First record in implicit -n loop behaves differently than the rest. Hoping to find an explanation. &lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Grants
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/pevans_core_dev_may_2026" rel="noopener noreferrer"&gt;PEVANS Core Perl 5: Grant Report for May 2026&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Perl
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/06/this-week-in-psc-228-2026-06-08.html" rel="noopener noreferrer"&gt;This week in PSC (228) | 2026-06-08&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-378" rel="noopener noreferrer"&gt;The Weekly Challenge - 378&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Second Largest Digit" and "Sum of Words". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-377" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 377&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Reverse Existence" and "Prefix Suffix" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/prefixed-existence.html" rel="noopener noreferrer"&gt;Prefixed Existence&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This article offers a great introduction to the Raku language through its implementation of the The Weekly Challenge #377, specifically the use of native Raku functions, such as .flip and .combinations. The code is well-written, typical of Raku, and fully supported with an extensive breakdown of each line of code, detailed run-time logs, and references to helpful documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/06/perl_weekly_challenge_week_377.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 377&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The article compares Perl and Raku solutions for Week 376 of the Challenge and illustrates how the two languages are different in terms of their evolution. Specifically, it illustrates how Raku provides a more modern set of high-level features (e.g., built-in support for substrings and pairs) compared to the equivalent structural features in Perl, which require additional code to implement.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/06/12/ch-377.html" rel="noopener noreferrer"&gt;From Start to End and Back&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Jorg takes a multi-paradigm approach to solving The Weekly Challenge #377 in both Perl and J (the array-processing language). This article showcases Jorg's technical knowledge because he generalises the first task from its minimum definition and well-organises the second task's input by length to optimise the process. Additionally, Jorg's complete walkthrough of the functional, tacit programming techniques found in language J is well presented, allowing for the easy comprehension of complex manipulations of Arrays and RegEx optimisations.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/06/08/PWC377/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 377&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;W. Luis Mochan employs the expressive capabilities of the Perl language in order to create solutions that exhibit exceptional brevity with no extra syntax or words. This will definitely capture the interest of developers looking for clean and functional solutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/rU" rel="noopener noreferrer"&gt;They run and hide their heads / They might as well be dead…&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post provides a great, multi-lingual breakdown of the challenge with clean idiomatic solutions in Perl, Raku, Python and Elixir. By demonstrating how each of the programming paradigms handle the same logic, Packy provides educational value beyond measure while maintaining interest with a clever Beatles-style music theme.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/377" rel="noopener noreferrer"&gt;Strings within strings&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Peter offers a refreshingly simple and useful way to accomplish this task using only Perl. He places an emphasis on keeping the code readable, ensuring UTF-8 characters can safely contain more than one byte, and maintaining a high level of performance in real-world applications. There is no ambiguity or sacrifice made in developing an easy-to-interpret solution to a hard problem and accommodating corner cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc377-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 377: Reverse Existence&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this article, Reinier discusses how to efficiently leverage Perl's string manipulation and logical checks to confirm if input strings share overlapping character sequences with the least amount of code. This article is an excellent resource for learning to write perl code that efficiently performs substring matching in a clear, idiomatic manner with minimal additional complexity.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc377-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 377: Prefix Suffix&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Reinier made use of Perl's built-in string matching capabilities to efficiently find all pairs where one of the strings serves as both the beginning and end of one of the other strings. This showcases a great example of writing efficient, clear code to solve a complex logic problem of substring containment in as little code as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/06/The_Weekly_Challenge_377__A_Suffix_to_Existence.html" rel="noopener noreferrer"&gt;A Suffix to Existence&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Roger's article provides an excellent comparison between different programming languages by demonstrating how language paradigms solve the same algorithms for sliding windows and substring matches, thereby providing significant educational value to the reader by making comparisons between high-level built-in functions with manual implementations for the same problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-existence-4531"&gt;Existence&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, Simon analysed the issue into smaller pieces/steps made it easier for implementation to remain very readable and maintainable. A strong resource for developers wishing to observe how simple, idiomatic methods can more elegantly achieve string manipulating constraints.&lt;/p&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/06/dciv-17-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Perl development using AI (online)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 17, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://berlin.pm.org/" rel="noopener noreferrer"&gt;Berlin.pm - Naumanns Biergarten&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 24, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/calendar/cal-ZFzHes2YwV6j0h9" rel="noopener noreferrer"&gt;Toronto.pm - June Social Evening&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 25, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://paris.mongueurs.net/" rel="noopener noreferrer"&gt;Paris.pm monthly meeting&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;July 8, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.meetup.com/hacklafayette/" rel="noopener noreferrer"&gt;Purdue Perl Mongers (HackLafayette) - TBA&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;July 08, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;July 14, 2026&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #776 - Learning Perl</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 08 Jun 2026 06:13:39 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-776-learning-perl-717</link>
      <guid>https://dev.to/szabgab/perl-weekly-776-learning-perl-717</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/776.html" rel="noopener noreferrer"&gt;Perl Weekly 776&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;Recently, I came across an article, &lt;a href="https://medium.com/@realmerlyn/the-day-i-decided-never-to-learn-python-2c59d1a1edc5" rel="noopener noreferrer"&gt;The Day I Decided Never to Learn Python&lt;/a&gt; by &lt;strong&gt;Randal L. Schwartz&lt;/strong&gt;. Well, &lt;strong&gt;Randal&lt;/strong&gt; doesn't need an introduction. He took us back to &lt;strong&gt;2001&lt;/strong&gt;, the same era when I first started learning &lt;strong&gt;Perl&lt;/strong&gt; in 1999. He was a major guiding force during my early programming days.&lt;/p&gt;

&lt;p&gt;Last week, I joined a live session by &lt;strong&gt;Gabor&lt;/strong&gt; focussed on &lt;strong&gt;FalkorDB&lt;/strong&gt;. It was fun watching him code and talk while I sat back as a silent spectator. You can learn a lot just by watching how he approaches coding. It reminded me of many years ago when I did pair programming with him and submitted a pull request to the &lt;strong&gt;Dancer2&lt;/strong&gt; project. Those were the golden days, when I had so much energy and time. That being said, I am still actively learning &lt;strong&gt;Perl&lt;/strong&gt; and discovering how to do new things with it. These concepts may not be new to everyone, but they are new to me. For example, I recently played with &lt;strong&gt;GraphQL&lt;/strong&gt; for the first time, and I've also been experimenting with &lt;strong&gt;RAG&lt;/strong&gt; and &lt;strong&gt;JSON-RPC&lt;/strong&gt;. I have shared my recent experiments down below.&lt;/p&gt;

&lt;p&gt;The process of learning never stops. A few days ago, I noticed an update for &lt;strong&gt;HTTP::Message v7.02&lt;/strong&gt;. Since it was released by &lt;strong&gt;Olaf Alders&lt;/strong&gt;, I was curious to see what had changed. It turned to be something, I hadn't realised for all these years. While I am well-acquainted with HTTP methods like GET, POST, and PUT, I didn't know "0" could actually be a valid HTTP method name if you wanted it to be. This release added support for exactly that, thanks to contributor, &lt;strong&gt;Karen Etheridge&lt;/strong&gt;. Amidst all of this, I am still trying to find time for my upcoming book on &lt;strong&gt;DBIx::Class&lt;/strong&gt;. I recently shared a blog post demonstrating the power of DBIC components, and I am trying my best not to lose focus.&lt;/p&gt;

&lt;p&gt;You might find that this edition is full of my own personal posts, as there was unfortunately very little community news to report this week. Regardless, I hope you enjoy the rest of the newsletter.&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Mohammad Sajid Anwar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Announcements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/06/this-week-in-psc-227-2026-06-01.html" rel="noopener noreferrer"&gt;This week in PSC (227) | 2026-06-01&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This week we were back to full strength. We have now dealt with all of the belated issues and all of the blockers. Paul will be shipping 5.43.11 very shortly. With the amount of changes we have had to merge, we will not be able to rush the .11 cycle, but we intend to start the work on the 5.44 RC early, to ensure that we can release with as little additional delay as possible.&lt;/p&gt;




&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/resultclass-components/" rel="noopener noreferrer"&gt;Result Class - Components&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Continue with the series post on DBIx::Class, in this post I am showing the power of DBIC components dealing with date/timestamp column.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/rag-with-perl/" rel="noopener noreferrer"&gt;RAG with Perl&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, I try to decode what RAG is and how we can implement RAG engine in Perl talking to LLM and Vector database in a docker container.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/cpan-deb-package/" rel="noopener noreferrer"&gt;CPAN Debian Package&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;First time managed to build a debian package for DBIx::Class::Async with step by step instructions.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/jsonrpc-with-perl/" rel="noopener noreferrer"&gt;JSON-RPC with Perl&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;After dealing with gRPC, next in line was JSON-RPC. The motivation was to explore MCP after getting to know JSON-RPC. It turned out to be too easy demonstrate.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/mojo-meets-graphql/" rel="noopener noreferrer"&gt;Mojo meets GraphQL&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post is meant for beginners as I am exploring GraphQL for the first time as well. The best part is the use of GraphiQL for building and testing the API.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/dbic-graphql/" rel="noopener noreferrer"&gt;DBIx::Class and GraphQL&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, I shared how to integrate DBIx::Class with GraphQL. Having played with GraphQL, I can say it is not for weak heart. If you are coming from REST API background then it will take some time to get your head around it. I am telling this from my personal exprience.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/cpan-graphql/" rel="noopener noreferrer"&gt;CPAN and GraphQL&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;After DBIx::Class integration with GraphQL, my immediate task was to make the process easy as it doesn't have to this complicated. In the process, I released brand new CPAN distribution: DBIx::Class::Schema::GraphQL.&lt;/p&gt;




&lt;h2&gt;
  
  
  CPAN
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://metacpan.org/dist/FalkorDB" rel="noopener noreferrer"&gt;FalkorDB&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Perl client module for FalkorDB. This code was mostly generated using AI tools and has not been checked manually yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://metacpan.org/pod/DBIx::Class::Schema::GraphQL" rel="noopener noreferrer"&gt;DBIx::Class::Schema::GraphQL&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;It was created while working on the DBIx::Class integration with GraphQL. Using this module, it is so easy to build GraphQL API.&lt;/p&gt;




&lt;h2&gt;
  
  
  Grants
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/maintaining_perl_tonyc_may_2026" rel="noopener noreferrer"&gt;Maintaining Perl (Tony Cook) May 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/maintaining_perl_dave_mitchell_may_2026" rel="noopener noreferrer"&gt;Maintaining Perl 5 Core (Dave Mitchell): May 2026&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-377" rel="noopener noreferrer"&gt;The Weekly Challenge - 377&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Reverse Existence" and "Prefix Suffix". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-376" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 376&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Chessboard Squares" and "Doubled Words" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/doubled-chessboard.html" rel="noopener noreferrer"&gt;Doubled Chessboard&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post offers an orderly, aesthetically pleasing way of solving the Weekly Challenge problems using the modern-day features of Raku syntax. With the use of well-defined subset custom types to strongly validate input and a simple, tokenising object-oriented class structure for text processing, Arne creates a solution that is easy to read and maintain and takes care of the complex edge cases such as applying a look behind that crosses over multiple lines.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/boblied/pwc-376-doubled-words-7g3"&gt;Doubled Words&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Bob presents a creative solution to a challenging text processing issue by using a well known yet little used built-in feature of the Perl. The result is an elegant mechanism for bypassing tokens through a clearly documented and separated mechanism of backtracking while retaining context about the structure through the use of captured groups in the split regex.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/06/05/ch-376.html" rel="noopener noreferrer"&gt;Chess Solo&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Jorg provides a very concise and mathematically elegant solution for the colorisation of a chessboard. By recognising that under mod 2 operations the coordinate bases are completely annihilated, implementations can be created in both Perl and J using only one line of code and they are both efficient and structurally minimalist.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://kolouch.net/perlweeklychallenge/blog-376.html" rel="noopener noreferrer"&gt;The Weekly Challenge 376&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;An unusually clear yet detailed solution is provided in this blog post, as it combines clean, idiomatic code examples with short technical explanations about how to use regex to parse doubled words and how to compare two mathematical coordinates. Complex logic is presented so anyone can read easily and learn from.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/06/01/PWC376/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 376&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The excellent demonstration of the capabilities of Perl as a function-based programming language is shown through this post with extremely short and idiomatic solutions. Luis Mochán has used expressive, single-line statements to convert complicated constraints into small, clean, logical data flows in an extraordinary manner with Perl.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-376/challenge-376/matthias-muth#readme" rel="noopener noreferrer"&gt;A 1-Bit Chessboard and Fancy Separators&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Matthias presents an analytical and well-defined solution to the difficulties presented by Challenge 376 through the use of well-separated parsing and formatting, clear comments on the use of regular expressions, and the submission of a clear and clean solution suitable for production.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/r4" rel="noopener noreferrer"&gt;You might think I’m crazy, but I don’t even care&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A well-structured and very interesting review of Perl Weekly Challenge 376 is presented with a reference to principles from a popular culture item. Packy clearly illustrates the elegant way to process text in the real world while exhibiting outstanding technical expertise by explaining the complexity of lookahead logic and the constraints of the boundary in a way that allows for simple, idiomatic, and highly maintainable solutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/376" rel="noopener noreferrer"&gt;Squares and pairs&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This solution offers a very neat, simple, and mathematically pleasing method for solving the chessboard parity problem. Peter has effectively utilised the ASCII values (ord) of the column letters as well as the numeric row values to reduce a spatial coordinate problem to a quick and efficient calculation of a bitwise parity (&amp;amp; 1). The source code is formatted well, clearly commented, and takes advantage of the mathematics behind the solution so as to avoid unnecessary conditional barriers.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc376-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 376: Chessboard Squares&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post gives a very clear, well-organized, and visually intuitive representation of how to solve the programming challenge "Chessboard Squares". Explicitly laying out the grid coordinates with their appropriate color will provide an excellent foundation for developing an accurate and efficient lookup algorithm.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://hatley-software.blogspot.com/2026/06/robbie-hatleys-solutions-in-perl-for.html" rel="noopener noreferrer"&gt;The Weekly Challenge #376&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;By using an elegant mathematical approach to the parity of squares on a chessboard, along with an incredibly efficient, single-pass regular expression, this code shows immense technical skill. The code also uses multi-line lookaheads, HTML tags, and back references, all handled by a simple subroutine (double_double_toil_and_trouble), that is suitable for use at production level.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/06/The_Weekly_Challenge_376__Half_a_Chessboard.html" rel="noopener noreferrer"&gt;Half a Chessboard&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A general description of a previously completed task, this post shows a real-life application of code reuse. Roger created a nice, modular solution to decode coordinate mathematics (on the basis of (x+y) mod 2) by cleanly wrapping the existing helper function from the previous task. Therefore, through this implementation, he provides a concise representation of the solution and eliminates any duplicate logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-double-chessboard-5ce5"&gt;Double chessboard&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this blog post, Simon's clever use of the bitwise XOR operator (^) as a parity check for a chess board is very creative. Additionally, he shows a well-organised and simple method of utilising re.split and list comprehensions to find the position of words while also overcoming some challenging lookahead and HTML boundary situations.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rakudo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://rakudoweekly.blog/2026/06/01/2026-22-some-ast-fruit/" rel="noopener noreferrer"&gt;2026.22 Some AST Fruit&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/06/dciii-22-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The corner of Gabor
&lt;/h2&gt;

&lt;p&gt;A couple of entries sneaked in by Gabor.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://academy.code-maven.com/l/os-perl-2026-06-03-part-1" rel="noopener noreferrer"&gt;FalkorDB client in Perl using CLI AI Agents&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is the first hour of the live coding session using AI to write Perl we had last week. (Free, registration required)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://academy.code-maven.com/l/os-perl-2026-06-03-part-2" rel="noopener noreferrer"&gt;FalkorDB using Perl&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is the second hour of the live coding session using AI to write Perl we had last week. (Free, registration required)&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Next: Perl development using AI&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The next session in which each participant will have the opportunity to show how s/he is using AI to write Perl code. I am sure we will learn a lot from each other!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=xvxZAGIPGhg" rel="noopener noreferrer"&gt;Growing Pains: Scaling AI Coding across Team and Repo Boundaries with Graham Knapp&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Video recordings from the session yesterday. It is not Perl specific, but helps you understand things. For more such event, sign up to the &lt;a href="https://www.meetup.com/code-mavens/" rel="noopener noreferrer"&gt;Code Mavens&lt;/a&gt; Meetup group&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 9, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://paris.mongueurs.net/" rel="noopener noreferrer"&gt;Paris.pm monthly meeting&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 10, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.meetup.com/hacklafayette/" rel="noopener noreferrer"&gt;Purdue Perl Mongers (HackLafayette) - TBA&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 11, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Perl development using AI (online)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 17, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://berlin.pm.org/" rel="noopener noreferrer"&gt;Berlin.pm - Naumanns Biergarten&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 24, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/calendar/cal-ZFzHes2YwV6j0h9" rel="noopener noreferrer"&gt;Toronto.pm - June Social Evening&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 25, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #775 - Events and using AI to write Perl</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 01 Jun 2026 06:43:21 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-775-events-and-using-ai-to-write-perl-59pm</link>
      <guid>https://dev.to/szabgab/perl-weekly-775-events-and-using-ai-to-write-perl-59pm</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/775.html" rel="noopener noreferrer"&gt;Perl Weekly 775&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;I try to keep track of the Perl-related events. You can find them listed at the bottom of each edition of the newsletter and on the &lt;a href="https://perlweekly.com/events" rel="noopener noreferrer"&gt;events page&lt;/a&gt; on the Perl Weekly web site. There you can also find a link to embed the calendar in your calendar program. There are a number of events scheduled for this month. Most of them online, so if your time-zone permits, you can join those events. The big in-person event is at the end of the month &lt;a href="https://news.perlfoundation.org/post/tprc-schedule-and-lightning-talks" rel="noopener noreferrer"&gt;The Perl and Raku Conference&lt;/a&gt; in Greenville, South Carolina, USA.&lt;/p&gt;

&lt;p&gt;In the last couple of weeks I have been using various AI tools extensively. It still needs some hand-holding, but it already writes code that seems to be way better than the average code I've seen. So I wonder, would it be possible to ask one of the AI tools to convert Python libraries to Perl? You know, we have been complaining for many years that companies provide implementation for their SDK/API/client in several language, but not in Perl. We also saw that CPAN could not keep up with the growth of PyPI, npm and the other 3rd party library registries. So maybe some of you would like to explore the idea of converting some of these libraries to Perl using AI.&lt;/p&gt;

&lt;p&gt;Finally a personal note, I am planning a trip to Korea and Japan in September-October. If you live there and would have any travel recommendations, I'd love to get that.&lt;/p&gt;

&lt;p&gt;Enjoy your week!&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Gabor Szabo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/toby_inkster/2026/05/introducing-zuzuscript.html" rel="noopener noreferrer"&gt;Introducing ZuzuScript&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Toby Inkster created a programming language which blends a fairly JavaScript-like syntax with fairly Perl-like semantics, and a few other features that he hasn't really seen in many programming languages.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/ron_savage/2026/05/announce-perlwiki-v-147-jstree-copy-v-121.html" rel="noopener noreferrer"&gt;ANNOUNCE: Perl.Wiki V 1.47, JSTree copy V 1.21&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://perlhacks.com/2026/05/teaching-ai-about-the-british-monarchy-with-mcp/" rel="noopener noreferrer"&gt;Teaching AI About the British Monarchy with MCP&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The site already exposes information through a traditional web interface and a JSON API. But those interfaces were designed for humans and developers respectively. MCP gives AI systems a much cleaner integration point.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/ron_savage/2026/05/announce-perlwiki-v-146-other-news.html" rel="noopener noreferrer"&gt;ANNOUNCE: Perl.Wiki V 1.46 &amp;amp; other news&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/tprc-schedule-and-lightning-talks" rel="noopener noreferrer"&gt;TPRC Schedule Posted - Time to Submit Lightning Talks&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1tolezs/distzillapluginbundlestarter_use_readmebrief/" rel="noopener noreferrer"&gt;Dist::Zilla::PluginBundle::Starter: Use Readme::Brief instead of Pod2Readme? &lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1tnv9zj/perl_eval_question/" rel="noopener noreferrer"&gt;Perl eval question&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Oh, the evil eval.&lt;/p&gt;




&lt;h2&gt;
  
  
  Perl
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/05/this-week-in-psc-226-2026-05-25.html" rel="noopener noreferrer"&gt;This week in PSC (226) | 2026-05-25&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-376" rel="noopener noreferrer"&gt;The Weekly Challenge - 376&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Chessboard Squares" and "Doubled Words". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-375" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 375&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Single Common Word" and "Find K-Beauty" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/common-beauty.html" rel="noopener noreferrer"&gt;Common Beauty&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is an excellent example of how to use Raku's idiomatic style to perform frequency analysis with a very elegant way of using Bag data type and to make use of the %% operator for nice clean checks of divisibility by using Raku's built in primitives instead of having to write complex manual logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/05/perl_weekly_challenge_week_375.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 375&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;It provides an excellent, straightforward exhibition on how to solve the problems associated with Weekly Challenge 375 in Raku and Perl. In addition to showing off some of the more sophisticated, expressive data types that Raku supports (i.e., Bag) Jaldhar shows how they were able to implement clever, easy-to-read workarounds in Perl to accomplish essentially the same thing.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/05/29/ch-375.html" rel="noopener noreferrer"&gt;Common Beauty&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This blog post does a great job of examining and comparing the practical solutions using Perl and an advanced version of programming with the J language. The way Jorg has generalised the different types of problems he presented creates a sophisticated solution for someone that will accept any number of bases and/or arrays as inputs, and produces results that would be considered to be of a high standard.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/05/26/PWC375/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 375&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post shows a clear-cut way to address a problem and demonstrate a solid grasp of Perl's function-based capabilities. It uses expressive one-line Perl statements to demonstrate how small, readable, and consistent code can be written to transform data.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-375/challenge-375/matthias-muth#readme" rel="noopener noreferrer"&gt;A Single Beauty&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is an exemplary work featuring high-quality code that has a high degree of maintainability, uses excellent error check techniques and provides high levels of readability. In addition to using excellent reading technique, his solutions include well-documented logic and complete test suites.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/qf" rel="noopener noreferrer"&gt;You’ve got to get up every morning…&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Packy has created an outstanding multi-language deep dive post comparing different implementations of Raku, Perl, Python, and Elixir. In addition to providing many details about each language's implementation, his approach is to focus on making it easy to read and easy to follow the logic behind each one in spite of their technical complexities. He shows us how we can take the same data structure using different paradigms to create different implementation solutions for the same problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/375" rel="noopener noreferrer"&gt;Single and beautiful&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This solution exemplifies how effective algorithms can be designed, using math formulas as a way of running multiple sets of frequencies over a single array. It’s an example of a very concise method of solving complex state-tracking issues, using the least amount of code as possible while maintaining a high degree of readability.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc375-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 375: Single Common Word&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A clear and systematically organised method for resolving this issue is provided within this post, as well as a very easy to read content style, making it simple to see the reasoning behind the solution. Among other things, this post displays a good presentation of example test cases and has a good way of providing technical explanations to both new to experienced software programmers alike.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc375-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 375: Find K-Beauty&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This blog post exemplifies well-designed code that solves the "Find K-Beauty" problem in a strong manner. Reinier does an excellent job of providing clear, modular logic and using the least amount of code to implement those solutions. This allows the reader to see how the sliding window method works to find divisors in the number's format.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://hatley-software.blogspot.com/2026/05/robbie-hatleys-solutions-in-perl-for_01906093295.html" rel="noopener noreferrer"&gt;The Weekly Challenge #375&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post presents an incredibly complete and conversational analysis of the obstacles, illustrated with sophisticated technical knowledge through a thoroughly well-organised, educational format. Robbie's skill at blending solid, production-level Perl code with detailed explanation of the rationale behind it provides readers with an excellent foundation for either becoming familiarized with this form of problem solving or gaining greater depth of understanding regarding the "how" and "why" of idiomatic Perl.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/05/The_Weekly_Challenge_375__Uncommon_Beauty.html" rel="noopener noreferrer"&gt;Uncommon Beauty&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Roger produced a very thorough, well-organised explanation of the problem, using techniques such as hash frequencies and sliding windows to create solutions that are both clean and accurate. By comparing the two different languages Perl and Scala, Roger shows that they clearly understand how to approach solving problems using multiple programming languages.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/the-weekly-challenge-the-common-beauty-5eh3"&gt;The Common Beauty&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is an excellent example of a bilingual coding approach. It contrasts high-level data structures in Python with Perl's more flexible but lower-level data manipulation. Simon offers a clear explanation of the two different languages used to explain how one would move algorithmic logic from one programming paradigm to another by providing step-by-step instructions and side-by-side examples.&lt;/p&gt;




&lt;h2&gt;
  
  
  Videos
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=g_f1LVmNNuY" rel="noopener noreferrer"&gt;JSON Schema at the Toronto Perl Mongers&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/05/dcii-13-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Exploring Perl Modules + using AI (online)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 3, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 9, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://paris.mongueurs.net/" rel="noopener noreferrer"&gt;Paris.pm monthly meeting&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 10, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.meetup.com/hacklafayette/" rel="noopener noreferrer"&gt;Purdue Perl Mongers (HackLafayette) - TBA&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 11, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://berlin.pm.org/" rel="noopener noreferrer"&gt;Berlin.pm - Naumanns Biergarten&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 24, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/calendar/cal-ZFzHes2YwV6j0h9" rel="noopener noreferrer"&gt;Toronto.pm - June Social Evening&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 25, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #774 - Perl is too HOT</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 25 May 2026 08:22:36 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-774-perl-is-too-hot-58jc</link>
      <guid>https://dev.to/szabgab/perl-weekly-774-perl-is-too-hot-58jc</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/774.html" rel="noopener noreferrer"&gt;Perl Weekly 774&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;I know you all are patiently waiting for the release of &lt;strong&gt;Perl v5.44&lt;/strong&gt;. Recently I joined the &lt;a href="https://www.nntp.perl.org/group/perl.perl5.porters/" rel="noopener noreferrer"&gt;mailing list&lt;/a&gt; of &lt;strong&gt;perl5-porters&lt;/strong&gt;. You get all the latest update straight in your inbox. This is where I found out, the &lt;strong&gt;v5.44&lt;/strong&gt; would be out end of next month if everything goes as per the plan. I get excited during this time of the year to see what is new added to the core &lt;strong&gt;class&lt;/strong&gt; feature. I am still waiting for the support of creating roles. I am also aware there are other high priority features in the list. No pressure to &lt;strong&gt;Paul Evans&lt;/strong&gt; and his team, we are happy to see the progress in the language under your guidance.&lt;/p&gt;

&lt;p&gt;Well you don't have to wait for the big release to get your hand dirty. For me, I am busy exploring things like &lt;a href="https://theweeklychallenge.org/blog/big-o-notation" rel="noopener noreferrer"&gt;Big O Notation&lt;/a&gt;, &lt;a href="https://theweeklychallenge.org/blog/jwt-with-dancer2" rel="noopener noreferrer"&gt;JSON Web Token (JWT)&lt;/a&gt;, &lt;a href="https://theweeklychallenge.org/blog/oauth2-with-dancer2" rel="noopener noreferrer"&gt;OAuth2&lt;/a&gt;, &lt;a href="https://theweeklychallenge.org/blog/rest-vs-grpc" rel="noopener noreferrer"&gt;gRPC&lt;/a&gt;. There are plenty in the pipelines too.&lt;/p&gt;

&lt;p&gt;If you are looking for something new then you should check this out, &lt;a href="https://omnideth.dev/blog/aspire-perl-integration" rel="noopener noreferrer"&gt;Aspire in Perl&lt;/a&gt;. While going through the post, I came across another gem, &lt;a href="https://github.com/jjatria/perl-opentelemetry-sdk" rel="noopener noreferrer"&gt;OpenTelemetry SDK for Perl&lt;/a&gt;, thanks to &lt;strong&gt;JJ Atria&lt;/strong&gt;. It's going in my TODO list. One day, I will take a closer look.&lt;/p&gt;

&lt;p&gt;Web development in Perl has seen it all since the CGI Era (1990s). First came &lt;strong&gt;PSGI/Plack&lt;/strong&gt;, the middleware revolution, followed by the rise of frameworks like &lt;strong&gt;Catalyst&lt;/strong&gt;, &lt;strong&gt;Dancer2&lt;/strong&gt; and &lt;strong&gt;Mojolicious&lt;/strong&gt;. Dave Cross has written a very detailed post about &lt;a href="https://perlhacks.com/2026/05/the-long-road-from-cgi-to-containers" rel="noopener noreferrer"&gt;The Long Road From CGI To Containers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Plenty of posts this week to keep you busy all day, enjoy.&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Mohammad Sajid Anwar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Announcements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/tprc-2026-30-day-away" rel="noopener noreferrer"&gt;TPRC is about 30 days from now!&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Nearly a month from today, TPRC is happening. A quick reminder to everyone about early bird discount. If you are planning to attend TPRC then you must avail the discounts.&lt;/p&gt;




&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/05/this-week-in-psc-225-2026-05-18.html" rel="noopener noreferrer"&gt;This week in PSC (225) | 2026-05-18&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Announcement of 5.43.11 dev release is the hightlight of this week update.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://omnideth.dev/blog/aspire-perl-integration/" rel="noopener noreferrer"&gt;The Camel Cometh&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Find out the story behind the support of Perl in Aspire. It is very inspiring and honest story. I wouldn't say, I understood everything but it created an interest inside me. You must checkout yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://perlhacks.com/2026/05/the-long-road-from-cgi-to-containers/" rel="noopener noreferrer"&gt;The Long Road from CGI to Containers&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;What a journey CGI had. The post reminds me some of my past encounters with CGI, like printing html tags inside the script. Although, it is not recommeded these days in raw form for web development, I am still one of the maintainers of &lt;a href="https://metacpan.org/pod/CGI::Simple" rel="noopener noreferrer"&gt;CGI::Simple&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/big-o-notation" rel="noopener noreferrer"&gt;Big O Notation&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This story is for all non-computer science background techie who have yet to crack the mystery of time/space complexity. I really enjoyed the journey and I am sure you will love it too.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/jwt-with-dancer2" rel="noopener noreferrer"&gt;JWT with Dancer2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;JSON Web Token (JWT) is something that came up in discussion many times in the past but I never had chance to look at it in details. Last week finally I found time to get to the bottom of it. This post details how and what is it actually.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/oauth2-with-dancer2" rel="noopener noreferrer"&gt;OAuth2 with Dancer2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Now OAuth2 is nothing new to many techie but I stayed away from it for so long. I found it too complex topic and kept delaying to explore. Now that I have seen it inside out, it seems like a walk in a park.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/strategy-design-pattern" rel="noopener noreferrer"&gt;Strategy Design Pattern&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Every time I talk about design patterns, I get excited like a little boy who found his favourite toy. Whenever I feel down, I pick up my book, &lt;a href="https://perlschool.com/books/design-patterns" rel="noopener noreferrer"&gt;Design Patterns in Modern Perl&lt;/a&gt; and read a design pattern. My all time favourite is Singleton design pattern. How about yours?&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/rest-vs-grpc" rel="noopener noreferrer"&gt;REST vs gRPC&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;gRPC was something I wanted to explore for a long time. In this post, I shared my investigation so far. I know, I have only scratched the surface and there are still plenty to explore.&lt;/p&gt;




&lt;h2&gt;
  
  
  CPAN
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://metacpan.org/pod/App::Test::Generator" rel="noopener noreferrer"&gt;App::Test::Generator v0.39&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Plenty of bug fixes and enhancements in this release as shared by Nigel. The &lt;a href="https://metacpan.org/dist/App-Test-Generator/changes" rel="noopener noreferrer"&gt;Changes&lt;/a&gt; file list the details.&lt;/p&gt;




&lt;h2&gt;
  
  
  Grants
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/maintaining_perl_dave_mitchell_april_2026" rel="noopener noreferrer"&gt;Maintaining Perl 5 Core (Dave Mitchell): April 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/pevans_core_dev_april_2026" rel="noopener noreferrer"&gt;PEVANS Core Perl 5: Grant Report for April 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;I noticed the mention of optional chaining PPC in the report. If it is what I think it is then I am super happy that it is in safe hand now. I can't wait to see the end result. Thank you Paul.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/maintaining_perl_tonyc_april_2026" rel="noopener noreferrer"&gt;Maintaining Perl (Tony Cook) April 2026&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-375" rel="noopener noreferrer"&gt;The Weekly Challenge - 375&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Single Common Word" and "Find K-Beauty". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-374" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 374&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Count Vowel" and "Largest Same-digits Number" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/largest-vowel.html" rel="noopener noreferrer"&gt;Largest Vowel&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is an excellent post describing a different way of using Raku. It demonstrates the effectiveness of Raku by utilising such features as 'gather/take' and powerful sequence grouping to make complex string processing simpler than ever before. In addition to being a great way to learn about Raku, this post is also an opportunity for developers to see how the author has reused existing code to produce a clean, modular program.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/05/22/ch-374.html" rel="noopener noreferrer"&gt;All Vowels Are Equal&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post demonstrates an extremely sophisticated work to the challenge. It uses advanced Perl's regex features, look-ahead assertions and the (?{...}) code block.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://kolouch.net/perlweeklychallenge/blog-374.html" rel="noopener noreferrer"&gt;The Weekly Challenge 374&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The code provided is a highly legible and clear way of handling the challenge resolution process, making use of commonly used data structures to simplify complex string processing tasks. It is very pleasing to see this clean, parallelised logic presented in both Perl and Python, which helps improve the maintainability of the two codes and provides a great deal of educational value as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/05/22/PWC374/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 374&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This fantastic example on how to reduce large scale problems into highly efficient solutions using half-lines of codes, showcases Perl’s ability to allow us to write complex, yet very succinct, solutions of difficult problems. It also serves as a great example of how to use regex backreference in a creative way, using regular expressions to locate and manage repeating patterns while minimising the amount of code required.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/pk" rel="noopener noreferrer"&gt;Hey, won’t you play…&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post showcases some great, multi-lingual solutions to this week's challenge by providing clean and idiomatic code examples in Perl, Raku, Python, and Elixir. Packy explains the thought process and the differences between lookaheads in regular expressions. This makes the article a great teaching tool for discovering how various languages solve equivalent algorithm problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/374" rel="noopener noreferrer"&gt;Lots of repetition&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Peter provides a well-reasoned and pragmatic assessment of the problem at hand and presents readable, non-complex code. He broke up all vowel characters in the string into separate chunks prior to applying a sub-substring check which provides an excellent example of performance optimisation by successfully processing very long strings with a relatively low number of vowels in that string to produce an acceptable processing time.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc374-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 374: Count Vowel&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post takes an insightful and interesting view of the vowel-counting challenge by making an interesting analogy of programming logic and music theory from the 18th century. The "Prefix/Cell/Suffix" model is a unique and clear technical explanation of the 'use of bitmasks for tracking vowel completion', making the bitmask solution to this challenge feel elegant and well thought out.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc374-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 374: Largest Same-digits Number&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, you'll find a brief yet highly efficient method of solving the "Largest Same-digits Number" challenge. The method relies on a single-pass regular expression as an elegant means to perform pattern matching with maximum effectiveness, and exemplifies good understanding of the high performance features of Perl.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/05/The_Weekly_Challenge_374__The_Largest_Count.html" rel="noopener noreferrer"&gt;The Largest Count&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post show how to solve problems using both Rust and Perl languages. It also demonstrates how one can take advantage of the strengths of each language (type-safe collections in Rust vs concise string searches in Perl) to carry out the tasks, but do so efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-vowels-and-numbers-dg8"&gt;Vowels and numbers&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post explains the need to clearly specify the task requirements for the "Largest Same-digit Number" challenge. It shows that an ambiguous requirement has caused different solutions to develop and serves to remind us that "coding to the examples" can be just as important as "coding to the original problem description."&lt;/p&gt;




&lt;h2&gt;
  
  
  Rakudo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://rakudoweekly.blog/2026/05/18/2026-20-slangification/" rel="noopener noreferrer"&gt;2026.20 Slangification &lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/05/dci-19-great-cpan-modules-released-last.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/calendar/cal-ZFzHes2YwV6j0h9" rel="noopener noreferrer"&gt;Toronto.pm - online - JSON Schema: language-agnostic typing / May TPM meeting&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 29, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Exploring Perl Modules + using AI&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 3, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 9, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #773 - The perl-tester Docker image</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 18 May 2026 07:25:58 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-773-the-perl-tester-docker-image-582e</link>
      <guid>https://dev.to/szabgab/perl-weekly-773-the-perl-tester-docker-image-582e</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/773.html" rel="noopener noreferrer"&gt;Perl Weekly 773&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;Recently there were a number of days that the &lt;a href="https://github.com/Perl/docker-perl-tester" rel="noopener noreferrer"&gt;perl-tester&lt;/a&gt; Docker image did not build properly. It is always a bit of an issue with it, because there quite a few moving parts. Parts where the dependency isn't fixed. e.g. in most of the cases it installs the most recent version of the modules from CPAN. Which mean any release of any module might break the whole build process. This time, however, the source of the problem was &lt;a href="https://github.com/Perl/docker-perl-tester/issues/166" rel="noopener noreferrer"&gt;the new release of App::cpm&lt;/a&gt;, the tool used to install the CPAN modules. As often the case the new release was intended to improve things: &lt;a href="https://skaji.medium.com/cpm-v1-making-installs-stable-b2236b8eda44" rel="noopener noreferrer"&gt;cpm v1: making installs stable&lt;/a&gt;, but it broke the build on some of the older versions of Perl just by increasing the minimum version of Perl required.&lt;/p&gt;

&lt;p&gt;One solution would be to fix all the dependencies, both tooling and the modules we install, but then someone would need to keep track of changes (the way dependabot does) which is probably way too much work for the few people who contribute to this project. The other solution might be to create an easy way to see what changed between the last successful build and the current failing build. We have &lt;a href="https://github.com/Perl/docker-perl-tester/issues/153" rel="noopener noreferrer"&gt;started to work&lt;/a&gt; on a tool that will help with that. It will also allow us to show exactly what is in every image. BTW If you have spare stars in your pocket, it would be nice if you gave one to the &lt;a href="https://github.com/Perl/docker-perl-tester" rel="noopener noreferrer"&gt;docker-perl-tester&lt;/a&gt; project.&lt;/p&gt;

&lt;p&gt;A couple of days ago I started to play with &lt;a href="https://www.falkordb.com/" rel="noopener noreferrer"&gt;FalkorDB&lt;/a&gt;, an Open Source Graph Database. I already gave a presentation in Hebrew on how to use in general and specifically in Python. In a couple of hours &lt;a href="https://www.meetup.com/code-mavens/events/314763927/" rel="noopener noreferrer"&gt;I am going to give another one&lt;/a&gt; - this time in English - an intro to GraphDB. I'll use Rust for the programatic examples. It seems there is no client for it in Perl so it might be an interesting project to build one. The one in Python uses the Redis module for connectivity so I looked at the options to use Redis in Perl. MetaCPAN showed &lt;a href="https://metacpan.org/pod/Redis" rel="noopener noreferrer"&gt;the Redis module&lt;/a&gt; as the first hit. Unfortunately that module did not have a commit for 3 years and there are many outstanding Issues and even PRs. So I posted about it both in the &lt;a href="https://chat.whatsapp.com/LRrkZsSRDvGLLwppyLnKHy" rel="noopener noreferrer"&gt;Perl Maven WhatsApp group&lt;/a&gt; and in the &lt;a href="https://t.me/PerlMaven" rel="noopener noreferrer"&gt;Telegram channel&lt;/a&gt;. Within seconds I was pointed towards &lt;a href="https://metacpan.org/pod/Mojo::Redis" rel="noopener noreferrer"&gt;Mojo::Redis&lt;/a&gt; and &lt;a href="https://metacpan.org/dist/Net-Async-Redis-XS" rel="noopener noreferrer"&gt;Redis::XS&lt;/a&gt; as alternatives.&lt;/p&gt;

&lt;p&gt;Online Events: If you are in an American time-zone then both the &lt;a href="https://boston-pm.github.io/" rel="noopener noreferrer"&gt;Boston Perl Mongers&lt;/a&gt; and the &lt;a href="https://luma.com/calendar/cal-ZFzHes2YwV6j0h9" rel="noopener noreferrer"&gt;Toronto Perl Mongers&lt;/a&gt; have semi-regular online meetings in your evening hours with various interesting speakers. If you are in the European time-zones or you don't mind having a meeting in your morning hours in the Americas, then there is the &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Perl Maven group&lt;/a&gt; where it is mostly me giving a presentation or working on some code. For details check out the &lt;a href="https://perlweekly.com/events" rel="noopener noreferrer"&gt;Perl Weekly events page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enjoy your week!&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Gabor Szabo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Announcements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://log.perl.org/2026/04/cpanorg-email-forwarding-has-been-shut.html" rel="noopener noreferrer"&gt;cpan.org email forwarding has been shut down &lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Perl NOC team has shut down the forwarding of email to the cpan addresses. If you are a CPAN author, please make sure MetaCPAN displays ways to contact you. (link to the source git repository of your projects, a LinkedIn account, an email address, etc.)&lt;/p&gt;




&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://skaji.medium.com/cpm-v1-making-installs-stable-b2236b8eda44" rel="noopener noreferrer"&gt;cpm v1: making installs stable&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;I rarely include articles from Medium as most of them are spam, but this one is real. So here you are!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/meta/2026/05/at-cpan-dot-org-on-bpo.html" rel="noopener noreferrer"&gt;Is your account on blogs.perl.org registered with an @cpan.org email address?&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/dean/2026/05/installing-bitvector-on-debian-13-trixie.html" rel="noopener noreferrer"&gt;Installing Bit::Vector on Debian 13 (Trixie)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;It is good that this information can be found on a public blog post, but IMHO it would be event better if this was part of the README or the documentation of the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://matthewpersico.github.io/2026/05/12/ptkdb-origins.html" rel="noopener noreferrer"&gt;My Journey with Devel::ptkdb - Origins&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/yukikimoto/enabling-addresssanitizer-asan-in-makefilepl-for-linux-environments-22fe"&gt;Enabling AddressSanitizer (ASan) in Makefile.PL for Linux Environments&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/chansen/2026/05/introducing-timestr.html" rel="noopener noreferrer"&gt;Introducing Time::Str&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;At first I was wondering why this new module when DateTime provides all the features, but then I read on and there are a few reasons. Interesting.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/briandfoy/business-isbn/discussions/28" rel="noopener noreferrer"&gt;Optional stricter normalization of raw ISBN input&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;An issue that gives an opportunity for you to share your thoughts.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1tbwvf3/why_does_a_call_to_ref_on_a_reference_to_substr/" rel="noopener noreferrer"&gt;Why does a call to &lt;code&gt;ref&lt;/code&gt; on a reference to 'substr' produce 'LVALUE'?&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Perl
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/05/this-week-in-psc-224-2026-05-11.html" rel="noopener noreferrer"&gt;This week in PSC (224) | 2026-05-11&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-374" rel="noopener noreferrer"&gt;The Weekly Challenge - 374&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Count Vowel" and "Largest Same-digits Number". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-373" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 373&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Equal List" and "List Division" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-373-1.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge 373: Equal List&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The clean, logical structure of Abigail's detailed technical analysis provides a very clear and rational basis for how best to apply mathematical theory to practical use. With a focus on optimising the algorithmic complexity rather than executing a brute force approach, Abigail delivers an incredibly efficient solution to this problem that will be valuable to all developers who wish to create highly efficient solutions to their problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-373-2.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge 373: List Division&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Abigail's solution to the list partitioning problem is a beautifully crafted and idiomatic implementation that completely avoids the cumbersome index-tracking that traditional loop-based implementations require. The implementation is easy to read and is highly efficient because it leans heavily on the mechanics of the underlying language. This illustrates how an effective structural data transformation paradigm can result in simpler implementations.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com//list-list.html" rel="noopener noreferrer"&gt;List the List&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Through a demonstration using gather and take in conjunction with native array splicing Arne demonstrates Raku's capabilities and gives a simple way to distribute remaining list offsets without having to rely on complex nested loops or overhead due to atypical index calculations. The result is a functional representation showing how Raku can eliminate complications associated with the partitioning of structural data, creating an intuitive self-documenting pattern.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/boblied/pwc-373-task-2-lets-dance-to-list-division-1e0k"&gt;Let's Dance to List Division&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Bob has produced a superbly developer-oriented analysis addressing the pragmatic aspects of designing APIs using Perl's 'flat' argument list mechanism. Bob's approach to using array references in conjunction with a dual-while-loop, which uses 'destructive splice' calls to divide the input data into well-balanced partitions, enables this entire operation to occur without requiring any complex index-tracking cognitive load.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/05/15/ch-373.html" rel="noopener noreferrer"&gt;Divide and Concat&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Jorg has provided a mathematically accurate and highly precise solution that demonstrates command of Perl's multidimensional array manipulation and list processing capabilities. The solution has been designed with a heavy emphasis on reducing iteration overhead, and uses a clean and logical approach to conditional checking. Overall, the implementation is an efficient way to manage data structures for all of the tasks required to complete this project.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/05/11/PWC373/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 373&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;W. Luis Mochan gives an interesting, very mathematical view of the difficulties and has elevated the difficulty of the tasks by discussing the different ways each of these tasks can be solved through their mathematical representations. The way the solution uses Perl Data Language is unique in its creativity and clearly shows how matrix operations and vector operations can be applied in a different manner to solve an algorithmic process much more efficiently and faster than typical procedural methods. This is a remarkable, challenging read, demonstrating the way that thinking in terms of vectors alone can change the way standard procedure of manipulating data can be made into a high level, abstract manner.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/pU" rel="noopener noreferrer"&gt;Because your list, your list I can’t resist&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Packy offers a unique perspective on the challenge by framing the approach through an interesting musical context, followed by a really clean, multilingual show-off with a few different language options. As a polyglot expert, Packy's write-up shows a number of idiomatic and clean ways to solve problems in both Perl and Elixir. The solutions have been complimented for their clear structure, readable transformations of data, and the highly contrasting ways in which they use the procedural power of Perl with the functional, pipeline-based elegance of Elixir.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/373" rel="noopener noreferrer"&gt;The week of lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This paragraph describes the outstanding quality of Peter's work in executing his weekly assignments and projects using clear and detailed methods. He concentrates on providing clear and easy to understand explanations of all aspects of the problem using very pragmatic solutions with less complex algorithms than would be required to complete this task, and thus have produced solutions with low run times and high readability. Another benefit of using this strategy is that it will have produced many examples of good clean and maintainable code, as well as simple Perl code showing how to accomplish structural validation without additional runtime cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc373-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 373: Equal List&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The analysis that Reinier provided on this challenge is truly impressive due to the systematic approach used to cover edges and validate input. The solution makes a great balance between how computer efficient it is to run while at the same time being easy to scan through for code due to well-named variables and clearly defined logical conditions. This is a great resource for developers looking to implement defensive programming and build highly maintainable systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc373-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 373: List Division&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Reinier has presented a very clear and logical way to solve the list partitioning problem through clarity in procedural programming and appropriately managing data through effective use of algorithms. The implemented solution is easy to follow, with simple looping structures and clearly defined conditions used to divide the collection according to specification without introducing complexity into the underlying architecture. This solution is a perfect example of pragmatic programming, where simplicity, maintainability, and consistency take precedence over unnecessary abstraction.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://hatley-software.blogspot.com/2026/05/robbie-hatleys-solutions-in-perl-for_0143398047.html" rel="noopener noreferrer"&gt;The Weekly Challenge #373&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The analysis provided by Robbie consists of an analysis of the weekly problems and an an idea of what you'd have to do. The breakdown of the problems will be thoroughly examined and will include thorough analysis of all the constraints on the solution as well as a commitment to validate input sufficiently to account for any and all edge cases and to deal with them accordingly. The combination of cleanly structured idiomatic programming style (including the use of loops) with clear and explicit comments that explain the logic behind the programming additions and modifications, make this a great reference source for new and experienced programmers to use.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/05/The_Weekly_Challenge_373__There_Is_No_Equality_Without_Division.html" rel="noopener noreferrer"&gt;There Is No Equality Without Division&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Roger performs a beautiful and tidy example of modern solutions to solving problems through example in different programming languages and paradigms. The two different types of tasks, structural validation and partitioning, have been broken down into separate clear logical blocks that allow for high readability of solutions and the use of commonly used data structures without the use of complex loops. The write-up contains an excellent comparison of the different language features that reduce index-tracking overhead while still providing optimal run-time efficiency and successfully illustrates how functional programming techniques can be used successfully with non-functional programming techniques.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-joining-and-splitting-lists-18gh"&gt;Joining and splitting lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Simon has presented an impressively logical and practical polyglot demonstration that compares the elegant way of handling the first task in Python to how it is done through direct translations into Perl. The first task's solution is particularly notable for its concise efficiency and consists of a great, simply written one-liner using native methods to join strings and performing a direct comparison to form the structure of the list being checked. In the second task, Simon has shown a brilliant method for diving an array into equal components by taking advantage of the mathematical operation called divmod or remainder and relying on destructive splice operations to divide the arrays evenly without creating any overhead from having to manage cumbersome index numbers.&lt;/p&gt;




&lt;h2&gt;
  
  
  Videos
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=SbBnc8FjUXM" rel="noopener noreferrer"&gt;Parsing Perl Without Perl - A Rust LSP for Perl 5&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A presentation by &lt;a href="https://www.linkedin.com/in/effortlesssteven/" rel="noopener noreferrer"&gt;Steven Zimmerman, CPA&lt;/a&gt;, at the online event of the &lt;a href="https://luma.com/calendar/cal-ZFzHes2YwV6j0h9" rel="noopener noreferrer"&gt;Toronto Perl Monger&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.youtube.com/watch?v=QgzHUjB0eTo" rel="noopener noreferrer"&gt;Acting Out With Claude: MCPs in Perl&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A presentation by &lt;a href="https://www.linkedin.com/in/steven-lembark/" rel="noopener noreferrer"&gt;Steven Lembark&lt;/a&gt;, at the online event of the &lt;a href="https://luma.com/calendar/cal-ZFzHes2YwV6j0h9" rel="noopener noreferrer"&gt;Toronto Perl Monger&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/05/dc-17-great-cpan-modules-released-last.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Exploring Perl Modules&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 20, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/calendar/cal-ZFzHes2YwV6j0h9" rel="noopener noreferrer"&gt;Toronto.pm - online - JSON Schema: language-agnostic typing / May TPM meeting&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 29, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 9, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #772 - PTS 2025</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 11 May 2026 08:04:22 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-772-pts-2025-lnh</link>
      <guid>https://dev.to/szabgab/perl-weekly-772-pts-2025-lnh</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/772.html" rel="noopener noreferrer"&gt;Perl Weekly 772&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;The Perl Toolchain Summit 2026 held in Vienna from 23rd - 26th April. I almost forgotton about it, until I read the &lt;a href="https://blogs.perl.org/users/book/2026/04/welcome-to-the-perl-toolchain-summit-2026.html" rel="noopener noreferrer"&gt;blog post&lt;/a&gt; by &lt;strong&gt;Philippe Bruhat&lt;/strong&gt;. It was refreshing to see the group met and continued the great work. First post event &lt;a href="https://domm.plix.at/perl/2026_04_perl_toolchain_summit.html" rel="noopener noreferrer"&gt;report&lt;/a&gt; was shared by &lt;strong&gt;Thomas Klausner&lt;/strong&gt;. The event report gave a detailed insights what happend during the 4-days event. I was hoping to see more such event report from other attendees. Luckily, we had few more to keep you busy by &lt;a href="https://blogs.perl.org/users/timothy_legge/2026/05/perl-toolchain-summit-2026---vienna.html" rel="noopener noreferrer"&gt;Timothy Legge&lt;/a&gt;, &lt;a href="https://blogs.perl.org/users/leo_lapworth/2026/05/pts-2026.html" rel="noopener noreferrer"&gt;Leo Lapworth&lt;/a&gt;, &lt;a href="https://thibaultduponchelle.github.io/My-Perl-Toolchain-Summit-2026" rel="noopener noreferrer"&gt;Thibault Duponchelle&lt;/a&gt;, &lt;a href="https://ssoriche.com/posts/2026/05/pts-2026-what-actually-happened" rel="noopener noreferrer"&gt;Shawn Sorichetti&lt;/a&gt;, and &lt;a href="https://blogs.perl.org/users/paul_johnson/2026/05/the-perl-toolchain-summit-2026.html" rel="noopener noreferrer"&gt;Paul Johnson&lt;/a&gt;. There was even a group photo shared by &lt;strong&gt;Paul&lt;/strong&gt;. I am looking for an update on my personal favourite project &lt;strong&gt;MetaCPAN&lt;/strong&gt; led by &lt;strong&gt;Olaf Alders&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Happy to see, &lt;a href="https://metacpan.org/dist/Stats-LikeR/view/README.md" rel="noopener noreferrer"&gt;Stats::LikeR&lt;/a&gt;, which provides &lt;strong&gt;R&lt;/strong&gt; statistical functions. I wish it was available few years ago. I was approached by a research student of an Australian university few years ago asking for help with his Perl script doing R's equivalent function in Perl. Fortunately we did it and paper was accepted in the end. I was surprised by his choice of language for his research paper. He could have easily used R rather than creating equivalent function in Perl. He was well versed with R as well, still he choose Perl, whilst learning the language.&lt;/p&gt;

&lt;p&gt;Please watch the &lt;a href="https://metacpan.org/recent" rel="noopener noreferrer"&gt;recent page&lt;/a&gt; on &lt;strong&gt;MetaCPAN&lt;/strong&gt; for such cool modules. Enjoy rest of the newsletter.&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Mohammad Sajid Anwar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/dbix-async-oracle/" rel="noopener noreferrer"&gt;DBIx::Class::Async - Oracle Database&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post I shared about the proof of support for Oracle in DBIx::Class::Async. It is always assuring the async operations with Oracle database.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/timothy_legge/2026/05/signing-cpan-releases-with-sigstore.html" rel="noopener noreferrer"&gt;Signing CPAN Releases with SigStore&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Timothy Legge describes a contemporary way of achieving security in the Perl ecosystem with the implementation of Sigstore to sign CPAN Releases. This post describes how we will transition from using traditional GPG signatures to shorter and easier to obtain certificates, while providing a clear roadmap to assist maintainers (and others) in adopting "keyless" signing and enhancing supply chain security.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/dbic-schema-part-2/" rel="noopener noreferrer"&gt;DBIx::Class - Schema Class (Part 2)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is part 2 of the series post about DBIx Schema Class. In this post, I shared how we can configure session on the fly and trap exception globally.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/dbic-schema-part-3/" rel="noopener noreferrer"&gt;DBIx::Class - Schema Class (Part 3)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In the third part of the series, I discussed the use of DBIx::Class::Schema::Config and how we can securely manage database credentials.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/damil/beautiful-perl-feature-low-precedence-boolean-operators-and-or-3900"&gt;Beautiful Perl feature: low-precedence boolean operators 'and', 'or'&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The elegant usefulness of Perl's low-precedence boolean operators (and, or, not) compared to the more common high-precedence operators (&amp;amp;&amp;amp;, ||, !) is further explored by Laurent. The post shows how the low-precedence boolean operator can be used as a "control flow tool" creating readable, idiomatic code using the example of the classic "do or die" convention.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/explain-act/" rel="noopener noreferrer"&gt;Explain act&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, I introduced the workflow automation tool, act. It gives hands-on tutorial on the subject.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/robert_rothenberg/2026/05/ideas-for-the-cpan-meta-v3-specification.html" rel="noopener noreferrer"&gt;Ideas for the CPAN Meta v3 Specification&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Improvements to how developers will be able to manage their dependencies and the tools that they use for building them is the goal of several forward-thinking updates proposed by Robert Rothenberg to the CPAN Meta Spec v3. His blog post includes recommendations for enhancements to provide developers with standardised, enhanced requirements for their "develop" phase, as well as improved ways to specify what hardware or operating system a developer's distribution requires to successfully run.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/05/this-week-in-psc-223-2026-05-04.html" rel="noopener noreferrer"&gt;This week in PSC (223) | 2026-05-04&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A brief report from the Perl Steering Council has provided us with an update about their most recent triage session. Among several small changes and the completion of various CPAN dual-life module updates, one of the major highlights of this update is that there are currently no release blockers.&lt;/p&gt;




&lt;h2&gt;
  
  
  CPAN
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/lichtkind/2026/05/gtc-21-go-pro.html" rel="noopener noreferrer"&gt;GTC 2.1 go pro&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The GTC (Graphics::Toolkit::Color) project has been going well according to Herbert Breunung's progress report on it, including the Go-Pro initiative for professional grade stability. The update on the 2.1 release completed a more efficient API, reducing the amount of work involved in creating colors or generating palettes, and successfully built on a solid foundation for future integration into GUI's and plotting applications.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-373" rel="noopener noreferrer"&gt;The Weekly Challenge - 373&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Equal List" and "List Division". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-372" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 372&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Rearrange Spaces" and "Largest Substring" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/spaces-at-large.html" rel="noopener noreferrer"&gt;Spaces at Large&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Arne Sommer takes a close look at the nuances of whitespace in Raku, especially in relation to how the context of either string or array can affect whitespace. This post provides a practical investigation into how to handle whitespace effectively. Examples of how Raku's syntactical flexibility will allow for clean, expressive code to be written around more complex data structures have been provided.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/05/perl_weekly_challenge_week_372.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 372&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Jaldhar demonstrates the unique strengths of each language, contrasting Perl’s efficient hash-based counting with Raku’s expressive built-ins to solve these algorithmic puzzles.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/05/08/ch-372.html" rel="noopener noreferrer"&gt;Regular Sub-Gaps&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, Jorg Sommrey provides an in-depth overview of his approaches to each of the two tasks for this week's challenge. He demonstrates that it is possible to write relatively short and very readable code by using List::Util and idiomatic hash slicing. He also shows how these techniques easily handle edge cases such as the case insensitivity of the frequency count of words.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/05/04/PWC372/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 372&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Mochan takes a higher-level look at Rearrange Spaces by breaking down an input string into an array and then using the tr/// operator to determine how many elements are in the array before performing some arithmetic to calculate how many spaces need to be added. The x operator and join are both used to construct the output from the individual elements. For the solution to Largest Substring, Mochan uses a hash data structure to remember the first time each character appears in the input string so that he can keep track of the longest substring while going through the input string using an index. He also updates his maximum substring variable each time he sees a character he's previously encountered.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-372/challenge-372/matthias-muth#readme" rel="noopener noreferrer"&gt;Very Stringish&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Matthias Muth offers straightforward, modernly written Perl code using the new v5.40 features of Perl’s builtin::indexed to track the position of all characters in Finding Largest Substring so as to find the maximum length substring in the most efficient manner possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/p3" rel="noopener noreferrer"&gt;Empty Substrings and Empty Spaces&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In his blog post, Packy Anderson focuses on the edge cases for each of the challenges and provides solid solutions in Perl, Raku, Python and Elixir. He also explains the logic of his "Rearrange Spaces" solution with exact math for distributing spaces between words, as well as a clever method for handling the -1 requirement for unique characters in his "Largest Substring" solution.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/372" rel="noopener noreferrer"&gt;Strings of strings&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Peter has given two stylish implementations of the weekly challenge using Perl's native string functions to produce very compact code. For Rearrange Spaces he worked out precisely what gaps were needed to recreate the string using join, and for the Largest Substring solution he had one loop with a hash to keep track of where each character was seen first so that the answer was determined with one cycle through the original string.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc372-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 372: Rearrange Spaces&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Reinier presents a straightforward solution with his algorithmic method to achieve a successful outcome on this week's "Rearranging Spaces". This is done in Perl primarily because of its preciseness regarding how many spaces to be distributed across the gaps between the words and determining how many of the combined gaps will result in an even distribution. This post emphasizes on a well-structured plan, such as separating the words from one another using split, and then joining them back together with join and the x operator.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc372-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 372: Largest Substring&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Reinier had a methodical solution written in Perl for Weekly Challenge task of finding the largest substring. He used a hash to track the first instance of each character encountered when traversing the string. When he finds two identical characters, he determines their distance by subtracting the first instance's index from the second instance's index, and keeping track of the maximum value found up to that point; if he doesn't find duplicates then he will return -1.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://hatley-software.blogspot.com/2026/05/robbie-hatleys-solutions-in-perl-for_10.html" rel="noopener noreferrer"&gt;The Weekly Challenge #372&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Robbie gives in-depth solutions to the problem, providing excellent input handling as well as clarity in logic. When working with Rearranging Spaces, he uses a regex to identify the count of spaces &amp;amp; words, ensuring the math for gap size calculations &amp;amp; remainders are correct. For example, with regards to one word, he handles it just like the rest (edge cases). In terms of solving the problems of Largest Substring, he uses an array to save the first and last seen indexes of each character as he iterates through the character set of the input string making a distance calculation between these saved locations to determine the largest distance. The solutions are both mathematically correct and easily understood.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/05/The_Weekly_Challenge_372__Space_is_the_Largest_Place.html" rel="noopener noreferrer"&gt;Space is the Largest Place&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;For Rearrange Spaces, Roger considers how to find the gap sizes through integer division and then uses the modulus operator for trailing spaces. He ensures that his logic from each of his implementations remains consistent. In the case of Largest Substring, he uses a "first-seen" hash to improve performance by only traversing through the string one time. He shows us, in his post, an engineering-oriented coding style while also documenting that these algorithmic patterns are transferable to working with dynamic languages.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-distant-spaces-2839"&gt;Distant spaces&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In Finding the Largest Substring, Simon created a dictionary in Python and hash in Perl to store the first occurrence of each of the letters in the string. Once this was done, he proceeded through the entire string to compare the current index to the index where the letter was first stored; this enabled him to efficiently track the maximum distance between the first occurrence and the current occurrence. It clearly illustrate that string manipulation and data structures are accomplished using virtually the same logical steps in each of these two programming languages.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rakudo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://rakudoweekly.blog/2026/05/04/2026-18-star-wars-day/" rel="noopener noreferrer"&gt;2026.18 Star Wars Day&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/05/dxcix-21-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Event reports
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/timothy_legge/2026/05/perl-toolchain-summit-2026---vienna.html" rel="noopener noreferrer"&gt;Perl Toolchain Summit 2026 - Vienna&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;According to Timothy Legge, there was an effective meeting; the purpose of this summit was to develop the CPAN Security Group (CPANSec) into a CVE Numbering Authority and improve the security disclosure process for maintainers of CPAN modules. An example of a technical outcome resulting from the summit was the inclusion of signature function support in the distribution of Crypt::OpenSSL::RSA as well as the decision to deprecate Module::Signature in favour of more modern integrity checks.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/leo_lapworth/2026/05/pts-2026.html" rel="noopener noreferrer"&gt;PTS 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Leo Lapworth highlights the 2026 Perl Toolchain Summit by describing some of the major sponsorships that made it possible. He also discusses his own efforts to modernize the MetaCPAN infrastructure and the value of in-person collaboration for solving problems with other core developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/paul_johnson/2026/05/the-perl-toolchain-summit-2026.html" rel="noopener noreferrer"&gt;The Perl Toolchain Summit 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this blog post, Paul Johnson provides his impressions of an intense and productive Perl Toolchain Summit 2026 held in Vienna, and highlights progress made in both Devel::Cover version 2.00 and on integrating with MetaCPAN.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://thibaultduponchelle.github.io/My-Perl-Toolchain-Summit-2026" rel="noopener noreferrer"&gt;My Perl Toolchain Summit 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Thibault’s PTS 2026 report features a heavy lift on Test::Smoke releases and CPAN security hardening. His post offers a deep dive into the technical vetting of YAML payloads and the successful launch of cpm v1.0.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://ssoriche.com/posts/2026/05/pts-2026-what-actually-happened/" rel="noopener noreferrer"&gt;PTS 2026: What Actually Happened&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Shawn recaps the PTS 2026 focus on infrastructure, detailing the migration of MetaCPAN services to Kubernetes and enhanced secret management. It’s a grounded look at the high-stakes maintenance work that powers the Perl ecosystem.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 12, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Exploring Perl Modules&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 20, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #771 - Exploring Perl Modules</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 04 May 2026 12:39:07 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-771-exploring-perl-modules-k0g</link>
      <guid>https://dev.to/szabgab/perl-weekly-771-exploring-perl-modules-k0g</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/771.html" rel="noopener noreferrer"&gt;Perl Weekly 771&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;I put the 'Testing in Perl' course on hold for now. Instead of that we are going to explore the use of some of the mocking libraries we saw during the course. In the next session we'll pick one of the Perl modules used for mocking and we'll look for modules that use it. We'll try to understand how it is being used and we'll try to contribute something to at least one of the modules.&lt;/p&gt;

&lt;p&gt;For background you can check the &lt;a href="https://osdc.code-maven.com/perl" rel="noopener noreferrer"&gt;OSDC Perl&lt;/a&gt; page where we have a listing of modules for 'Code reading'.&lt;/p&gt;

&lt;p&gt;You can also watch the recording of the &lt;a href="https://academy.code-maven.com/c/perl-testing-2026" rel="noopener noreferrer"&gt;Testing in Perl course&lt;/a&gt;. (Registration required but these videos are currently free of charge.)&lt;/p&gt;

&lt;p&gt;Enjoy your week!&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Gabor Szabo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/ron_savage/2026/05/announce-perlwiki-v-145-etc.html" rel="noopener noreferrer"&gt;ANNOUNCE: Perl.Wiki V 1.45 etc&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/tprc-post-conference-class" rel="noopener noreferrer"&gt;TPRC Announces Post Conference Class&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Steven Lembark is presenting: Teaching AI New Tricks: Perly MCP's for Claude.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester-me.html" rel="noopener noreferrer"&gt;Who tests the tester? Me !!!&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;I was just showing the participants of the 'Testing in Perl' course how to write and test a Test::* module. It is nice to see that about the same time Lichtkind wrote an article about the same topic.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/preaction/2026/04/reading-cpan-testers-reports-using-ai-agents.html" rel="noopener noreferrer"&gt;Reading CPAN Testers Reports Using AI Agents&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A very interesting and useful use of AI.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1t0yrko/sending_matrix_messages/" rel="noopener noreferrer"&gt;sending matrix messages&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1t0lpjf/module_naming_vs_cpan_conventions/" rel="noopener noreferrer"&gt;Module naming vs CPAN conventions&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1sz3521/perl_in_ubuntu_2604_lts_vs_2404_lts/" rel="noopener noreferrer"&gt;Perl in Ubuntu 26-04 LTS (vs 24-04 LTS) &lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Some Perl modules need a dev package to be installed using 'apt'.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-372" rel="noopener noreferrer"&gt;The Weekly Challenge - 372&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Rearrange Spaces" and "Largest Substring". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-371" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 371&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Missing Letter" and "Subset Equilibrium" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-371-1.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge 371: Missing Letter&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Abigail gives us an efficient solution, O(n), to the missing letter problem by determining the difference between the sum of all letters in a full range of letters and the sum of the letters in the given array. This eliminates unnecessary loops, which is a big advantage over an iterative search.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-371-2.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge 371: Subset Equilibrium&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This solution is a well-organised that defines the NP-complete status of this problem and also implements an efficient bitmasking solution in numerous programming languages (e.g., Perl, Python, AWK, C, etc.) and serves as an excellent reference for other programmers to learn about and use for comparison purposes.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/missing-equilibrium.html" rel="noopener noreferrer"&gt;Missing Equilibrium&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Raku Solution implements this approach using combinations to easily create subsets in an idiomatic and very readable way. It also provides an elegant way of compensating for zero-based indices when calculating the sum of the positions in each subset by the calculated subsets.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/boblied/pwc-371-subset-equilibrium-just-nod-if-you-can-hear-me-14im"&gt;Subset Equilibrium (Just nod if you can hear me)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Bob addressed the exponential number of complex solutions from the outset and provided a practical implementation based on Algorithm::Combinatorics. The use of a positional-based iterator with zero-index compensation allowed him to effectively handle the off-by-one requirement. In addition to that, Bob supplied practical testing strategies using the Test2::Tools::Compare package.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/05/perl_weekly_challenge_week_371.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 371&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This solution gives a clean, efficient implementation that fulfills both the requirement of a proper subset and utilising 1-based indexing by adding + &lt;a class="mentioned-user" href="https://dev.to/combo"&gt;@combo&lt;/a&gt;.elems to the index sum. By making use of combinations from Algorithm::Combinatorics in Perl (and using built-in combinations in Raku), only the necessary subset sizes are generated; the output formatting handles both the non-empty and empty result cases in a very clean manner via a clear ternary expression.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/05/01/ch-371.html" rel="noopener noreferrer"&gt;Missing Equilibria&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This new solution offers an evaluation of the subset equilibrium problem that is a new and interesting technical perspective and acknowledges the shared views of the two demonstrated examples, while not overlooking those cases where the two may have disagreement along the edges of each set of criteria. The Perl code produced using Math::Prime::Util::forcomb and List::Gather is exceptionally simple but has an artistic style as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/04/27/PWC371/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 371&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post describes a simple yet effective way to generate all proper subsets of a set. It uses the subset function of the Algorithm::Combinatorics module to create all proper subsets, and then filters them based on a very concise expression written as a single line. The script contains both a command-line version for easy use and a complete version that includes error handling and has been thoroughly tested.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-371/challenge-371/matthias-muth#readme" rel="noopener noreferrer"&gt;The Missing Equilibrium&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;By mathematically restructuring the main condition in the problem, i.e. equality of the total values for elements and their corresponding indices. Additionally, utilising the combination iterators from Algorithm::Combinatorics with subset sizes of 2 through n-1 provides a memory efficient approach to solving this exponential complexity problem while utilizing an optimally prepared array of pre-computed offsets, or at least the offsets for an individual index, gives evidence of thoughtful programming.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/of" rel="noopener noreferrer"&gt;My subset is-a missing a letter…&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The solution has a nice, clean, multi-language implementation (Raku, Perl, Python, Elixir) and uses indexed pairs of values to keep track of the relationship between the two elements and the index position of the two elements, thus having no off-by-one errors. The solution meets the "proper subset" constraints by filtering out empty sets, singletons, and the full set as well as providing lots of detail in verbose output to help educate the user by giving exact values and sums of values for each match.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/371" rel="noopener noreferrer"&gt;Solve the question and balance the subset&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;By using established neighboring letter pairs, the algorithm determines the steps $a and $b in an efficient manner by deducing which are the next alternately patterned letter combinations in relation to each of the five positions for question marks. The entire algorithm utilises a single conditional expression to account for all five possible question mark positions. Additionally, the use of the modulus operator and the mapping of the patterning logic from the analysis to the assignment of steps makes this implementation both very efficient and very easy to read.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc371-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 371: Missing Value&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This solution requires formalization of the detection of repeating patterns through a comprehensive and well-documented approach by treating them as a repeating two-stage model (i.e., d1 = d3 and d2 = d4). Special consideration is given to both constant and alternating sequences. The use of defined-or (i.e., //=) to unify step values, along with the straightforward relationship between each possible question mark position and its simple arithmetic reconstruction, contributes to creating a code that is highly reliable and easy to follow. Additionally, the thorough input validation provided demonstrates significant consideration for actually implementing in a real world scenario.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc371-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 371: Subset Equilibrium&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This document includes an excellent comparison of two CPAN modules (Algorithm::Combinatorics and Data::PowerSet) that correctly identifies the combinatorically generated subsets by size (2 to n) are more efficient than generating the power set and filtering out the subsets to produce the same result for this specific task. The code base is very clean and well-structured; it also does a great job of utilising list slicing (@nums[@$subset]) and map to convert from 0-based to 1-based position, while making use of the helper function print_result to ensure that all output for all test cases is consistent and easy to read.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://hatley-software.blogspot.com/2026/05/robbie-hatleys-solutions-in-perl-for.html" rel="noopener noreferrer"&gt;The Weekly Challenge #371&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This document offers an innovative and realistic perspective on the subset equilibrium issue by acknowledging there is no "smart" optimisation to the subset equilibrium solution and then using a simple combination-based search on the two to n-1 sizes. The solution was implemented correctly with a summation on 1-indexed values for each of those combinations.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/05/The_Weekly_Challenge_371__Missing_Equilibrium.html" rel="noopener noreferrer"&gt;Missing Equilibrium&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Roger demonstrates a very clever way of optimizing the solution through the precomputation of one list of differences so that only the check for the sum of the selected differences equals zero must occur, which substantially reduces the amount of computing needed within the combinatorial loops. Roger does a great job of providing a perspective of how to write this in many programming languages (Raku, Kotlin, Crystal, etc.) and provides many practical examples (like sorting the list to create a consistent order for output), thereby making this solution efficient and easily transferable across many different programming languages.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-question-the-bits-4lnd"&gt;Question the bits&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Using bit manipulation, this solution works well to create all combinations of subsets by iterating through all integers from 1 to 2^n-2, thus avoiding the empty and full subsets. The inner loop adds pos+1 because the indices in a array have a base index of 1, while the implementation does not require any third-party modules, making it portable and easy to use for individuals who are already comfortable using bit mask manipulation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/05/dxcviii-17-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Event reports
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/book/2026/04/welcome-to-the-perl-toolchain-summit-2026.html" rel="noopener noreferrer"&gt;Welcome to the Perl Toolchain Summit 2026!&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;That's how it started&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://domm.plix.at/perl/2026_04_perl_toolchain_summit.html" rel="noopener noreferrer"&gt;Perl Toolchain Summit in Vienna&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A little review by the local orga.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Exploring Perl Modules&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 7, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 12, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #770 - Yet Another Test Harness</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 27 Apr 2026 07:05:43 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-770-yet-another-test-harness-44ci</link>
      <guid>https://dev.to/szabgab/perl-weekly-770-yet-another-test-harness-44ci</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/770.html" rel="noopener noreferrer"&gt;Perl Weekly 770&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;I like to believe that I belong to the old school of testing i.e. &lt;a href="https://metacpan.org/pod/Test::More" rel="noopener noreferrer"&gt;Test::More&lt;/a&gt;. That being said, every now and then I come across a magical test workflow. One of them is &lt;a href="https://metacpan.org/pod/App::Yath" rel="noopener noreferrer"&gt;App::Yath&lt;/a&gt;. The biggest and pleasant surprise is that both were presented by none other than &lt;strong&gt;Chad Granum&lt;/strong&gt;. Although I love the idea, I find it hard to adapt to it. I have to force myself otherwise it won't happen. I wrote a short &lt;a href="https://theweeklychallenge.org/blog/testing-in-perl" rel="noopener noreferrer"&gt;blog post&lt;/a&gt; as a reminder to myself while working on this editorial. I can refer to it next time I am changing existing code or adding new code.&lt;/p&gt;

&lt;p&gt;Speaking of testing, &lt;strong&gt;Herbert Breunung&lt;/strong&gt; shared a &lt;a href="https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester-me.html" rel="noopener noreferrer"&gt;blog post&lt;/a&gt; explaining how &lt;strong&gt;Test::Builder&lt;/strong&gt; helped him create his own test suite. This reminded me how I did exactly that in &lt;strong&gt;2010&lt;/strong&gt; to create &lt;a href="https://metacpan.org/pod/Test::Map::Tube" rel="noopener noreferrer"&gt;Test::Map::Tube&lt;/a&gt; for my routing framework, &lt;a href="https://metacpan.org/pod/Map::Tube" rel="noopener noreferrer"&gt;Map::Tube&lt;/a&gt;. It makes me feel quite old now!&lt;/p&gt;

&lt;p&gt;Enjoy rest of the newsletter.&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Mohammad Sajid Anwar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Announcements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.londonperlworkshop.com/news#News-2026-04-27" rel="noopener noreferrer"&gt;The London Perl and Raku Workshop 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Just a heads up: The next LPW is planned to be in November 2026.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/oodler_577/2026/04/ppc-summer-2026---call-for-participation.html" rel="noopener noreferrer"&gt;PPC Summer 2026 - Call for Participation!&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Brett Estrade, who is a member of the Perl Community Conference (PPC) organising committee, has released a call for participants for the Summer 2026 PPC. He notes the group's success in the areas of scientific research and community building through the use of independent Perl conferences and asks for speakers to submit proposals to present their work via the Papercall system to help keep the momentum going.&lt;/p&gt;




&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester-me.html" rel="noopener noreferrer"&gt;Who tests the tester? Me !!!&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In the article, Lichtkind shows how to apply the Test::Builder::Tester module to check your own test functions for correctness. He shares real-life example of using the is_tuple() function that he has developed to aid in creating a test for the GTC project.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/04/this-week-in-psc-222-2026-04-25.html" rel="noopener noreferrer"&gt;This week in PSC (222) | 2026-04-25&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Ihe Perl Steering Council got together at the 2026 Perl Toolchain Summit (Vienna). During this meeting, the group discussed the current status of Perl 5.44. Most blockers have been resolved and EOL workflow has been put in place. Finalisation of details for the next stable release is currently taking place.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/mikko_koivunalho/2026/04/importance-of-repositories-in-public.html" rel="noopener noreferrer"&gt;Importance of Repositories in Public&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this blog post, Mikko argues that keeping project repositories publicly accessible is an important practice even when no new contributions are anticipated. Having a project public on GitHub preserves historical context, serves as an example of quality work for others, and provides a source of useful data for the open-source community.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/petamem/2026/04/ai-as-a-chance.html" rel="noopener noreferrer"&gt;AI as a Chance - Opinion&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this article PetaMem discussed how through AI we will have access to new ways to enhance our creative processes (as opposed to replacing them), through developing a partnership with AI; allowing developers and creators alike use the technology of AI to automate repetitive processes and create opportunities for problems to be solved and new ideas developed through creative innovation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/todd_rinaldo/2026/04/ai-contributions-to-cpan-the-copyright-question.html" rel="noopener noreferrer"&gt;AI Contributions to CPAN: The Copyright Question&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In his article, Todd explores some of the legal issues surrounding code that is generated by AI and available through CPAN, and whether or not these AI-generated contributions are eligible for copyright protection and/or a legal license. He also cautions maintainers about the use of black box LLMs, which do not make public their training data, and encourages the Perl community to develop guidelines for the proper protection of the Perl software ecosystem from future disputes arising from improper use of code generated by LLMs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Web
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.dave.org.uk/2026/04/use-your-powers-only-for-good-clark.html" rel="noopener noreferrer"&gt;Use Your Powers Only for Good, Clark&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Dave dissects a really good looking SPAM email made by an AI LLM to show us all how the world will look in future with AI created outreach. Even though the spam had accurately scraped Dave's background and book titles, Dave believes that this creates the illusion of understanding but does not demonstrate the LLM has any real knowledge of either Dave's values or business model. Dave further states that this type of outreach is now cheaper and easier than ever though the deployment of AI to create large amounts of unsolicited SPAM.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-371" rel="noopener noreferrer"&gt;The Weekly Challenge - 371&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Missing Letter" and "Subset Equilibrium". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-370" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 370&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Popular Word" and "Scramble String" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-370-1.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge 370: Popular Word&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Abigail offers a superb example of processing text for the "Popular Word" task using the ability of Perl's regex engine to process words without considering case and complex punctuation marks. This solution is unique because it demonstrates a high-performance solution for filtering out banned words while maintaining concise and easily readable code.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-370-2.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge 370: Scramble String&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Abigail used a clever recursive method to take on the challenge of the "Scramble String" problem. The use of clear base cases and logic to explore possible points to split and swap all contribute to the final solution being an excellent example of how to solve complex problems with string transformations, using a valid solution and providing a framework that can be used to solve other complex problems involving string transformations.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/popular-scramble.html" rel="noopener noreferrer"&gt;Popular Scramble&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Arne's experience in comparing Raku's expressive power vs. Perl with respect to the solutions of these two challenges are at the heart of this review. He also demonstrates how to use Raku's built-in Bag and Any types to simplify complex logic with clean, idiomatic code. This article is a great reference for developers who want to learn how to use modern functional programming patterns effectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/boblied/pwc-370-scramble-on-scramblin-man-5god"&gt;PWC 370 Scramble On, Scramblin' Man&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Bob has created a detailed breakdown of the Scramble String problem, looking at the need to use memoisation to avoid redundantly calculating recursive algorithms. Bob has developed a very clearly constructed solution to the Scramble String problem using test-first development which is a perfect demonstration of how to keep performance and readability on complex branching logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/04/perl_weekly_challenge_week_370.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 370&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this article, there is a thorough comparison made between two languages: Perl and Raku. The many modern capabilities of Raku, such as having a Bag data structure and being natively supportive of methods for manipulating strings, resulted in solving the stated problem while producing significantly less code than what is generated by using Perl to do the same thing.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/04/24/ch-370.html" rel="noopener noreferrer"&gt;Scrambled Bans&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Jörg has concentrated his efforts solely on providing a high quality Perl solution to this challenge. The way he solves "Scramble String" is especially impressive because he uses a recursive solution that processes challenging partitioning and swapping of strings, using clean and idiomatic Perl programming.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/04/20/PWC370/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 370&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;W. Luis Mochán offers a mathematically rigorous and elegant take on Challenge 370 using Perl. For Task 1, he utilises a compact approach by normalising the input with lc and regex, then applying a frequency count. His review is particularly positive about the clarity and efficiency of using a single hash to filter out banned words while identifying the maximum frequency in one pass. For Task 2, he implements a recursive solution and highlights the technical necessity of caching results to avoid the exponential growth of possibilities in longer strings.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-370/challenge-370/matthias-muth#readme" rel="noopener noreferrer"&gt;Scrambling Back and Forth&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Matthias's submission for Task 1, he has used a concise and efficient one-liner with List::UtilsBy::max_by to count how many times words appear and in doing so stores a reference to the 'most popular' result while processing all results in a single pass. With respect to Task 2, Matthias did not limit himself to performing a simple recursive search as in previous weeks; however, he developed a Reverse Scramble algorithm, which is performing this task as a sequence of sorting in which strings become indexes of streaks representing their sorted order to allow for efficient verification of scrambling operations performed.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/nb" rel="noopener noreferrer"&gt;The scramble can not stop you / from becoming popu-ler… lar&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Packy's polyglot Challenge 370 features solid code samples in Perl, Raku, Python, and Elixir that showcase how to solve the problem multiple ways using different programming languages. He shows how using Elixir's pipe operator or Raku's Bag can help efficiently transform and filter the paragraph from "Most Popular Word". He also demonstrates a consistent, recursive approach to solving the problem using the same recursive logic, with code examples in each of the four languages, while adapting to the specific syntax and idioms of each language, in his example "Scramble String".&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/370" rel="noopener noreferrer"&gt;Words and more words&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Peter implements a clean regular expression approach to normalising the text and eliminating any banned words in Popular Word, while also provides a completely recursive solution in Scramble String that clearly demonstrates splitting and swapping parts of the string in order to illustrate the property of being scrambled.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc370-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 370: Popular Word&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Reinier solution includes a simple regular expression to remove punctuation characters and a hash to count the number of occurrences of each valid word. This makes it easy to identify the most frequently used word that is not on a banned list, and provides an easily readable model from which to analyze text.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc370-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 370: Scramble String&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Reinier's demonstrates pruning as an optimisation technique. If the characters sorted for both strings do not match (meaning they are not anagrams), the function returns false without going through all remaining recursive levels.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://hatley-software.blogspot.com/2026/04/robbie-hatleys-solutions-in-perl-for_24.html" rel="noopener noreferrer"&gt;The Weekly Challenge #370&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Robbie's high-performance Perl solutions employ algorithmic efficiency and strong input validation. In Task 1, he uses a fast normalisation method along with a hash-based frequency counting scheme to isolate the most popular word. In Task 2, Robbie's "Scramble String" implementation is notable for being a recursive Divide-and-Conquer strategy, providing an additional speedup by implementing a pre-check anagram filter to eliminate expensive recursive calls to incompatible strings.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/04/The_Weekly_Challenge_370__Popular_Scramble.html" rel="noopener noreferrer"&gt;Popular Scramble&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Roger shown how to use a specialised programming tool like Counter in Rust to find popular words with only a few lines of code. In addition, the example in PostScript is an interesting concept as it shows how to create a counted hash from scratch using the examples provided in the Rust program as a reference.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-popular-scrambling-2bba"&gt;Popular Scrambling&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Simon demonstrates Task 1 by methodically normalising strings and counting strings using hashes in order find the word with the highest occurrence. His solution for Task 2 highlights the use of recursion when solving the problem, and optimises by checking if two strings are anagrams with a "fail-fast" method; this way, all non-anagrams can be filtered out before going through the more complex process of recursion.&lt;/p&gt;




&lt;h2&gt;
  
  
  Perl Tutorial
&lt;/h2&gt;

&lt;p&gt;A section for newbies and for people who need some refreshing of their Perl knowledge. If you have questions or suggestions about the articles, let me know and I'll try to make the necessary changes. The included articles are from the &lt;a href="https://perlmaven.com/perl-tutorial" rel="noopener noreferrer"&gt;Perl Maven Tutorial&lt;/a&gt; and are part of the &lt;a href="https://leanpub.com/perl-maven" rel="noopener noreferrer"&gt;Perl Maven eBook&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://perlmaven.com/perl-testing/" rel="noopener noreferrer"&gt;Testing in Perl&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The 'slides' with all the examples that are used in the online course.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rakudo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://rakudoweekly.blog/2026/04/21/2026-16-selkie-tui-framework/" rel="noopener noreferrer"&gt;2026.16 Selkie TUI Framework&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Training
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://academy.code-maven.com/c/perl-testing-2026" rel="noopener noreferrer"&gt;Testing in Perl&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;While we are still &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;recording the live sessions&lt;/a&gt; of the &lt;b&gt;Testing in Perl&lt;/b&gt; you can also watch the previous episodes on the Code Maven Academy web site. Usually it is for paying subscribers only, but for the next couple of day you can still access it free of charge. You only need to register on the web site.&lt;/p&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/04/dxcvii-19-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Perl Maven online: Testing in Perl - part 5&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;April 30, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 12, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
    <item>
      <title>Perl 🐪 Weekly #769 - What is dead this week?</title>
      <dc:creator>Gabor Szabo</dc:creator>
      <pubDate>Mon, 20 Apr 2026 13:51:34 +0000</pubDate>
      <link>https://dev.to/szabgab/perl-weekly-769-what-is-dead-this-week-5e85</link>
      <guid>https://dev.to/szabgab/perl-weekly-769-what-is-dead-this-week-5e85</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://perlweekly.com/archive/769.html" rel="noopener noreferrer"&gt;Perl Weekly 769&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there,&lt;/p&gt;

&lt;p&gt;Every week I see a post declaring about something being dead. Agile is dead! Testing is dead!, Algol-68 is dead! I am so fed-up with this. So I am not going to link to the article that was discussing 5 dead programming languages.&lt;/p&gt;

&lt;p&gt;Last week finally I got home and because of the flight I had to postpone the &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Testing in Perl&lt;/a&gt; event so it will be held this Thursday. You are invited to &lt;a href="https://academy.code-maven.com/c/perl-testing-2026" rel="noopener noreferrer"&gt;watch the previous sessions&lt;/a&gt; (for now free of charge) and join the next one.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://chat.whatsapp.com/LRrkZsSRDvGLLwppyLnKHy" rel="noopener noreferrer"&gt;Perl Maven WhatsApp group&lt;/a&gt; already has more than 70 members. Unfortunately recently we got a few spammers so I had to turn on registration-approval. This means that when you try to join I'll send you a private message asking who you are. This is the little extra step we have to do to avoid spam. Anyway, you are invited to join us!&lt;/p&gt;

&lt;p&gt;Enjoy your week!&lt;/p&gt;

&lt;p&gt;--&lt;br&gt;
  Your editor: Gabor Szabo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Announcements
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/tprc-talk-deadline" rel="noopener noreferrer"&gt;TPRC Talk Submission Deadline in 2 days!&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/chansen/2026/04/faster-utf-8-validation.html" rel="noopener noreferrer"&gt;Faster UTF-8 Validation&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Way more information about UTF-8 than I can fit in my head.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/lnationorg/enums-for-perl-adopting-develcallparser-and-building-enumdeclare-28bj"&gt;Enums for Perl: Adopting Devel::CallParser and Building Enum::Declare&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/dean/2026/04/compiling-googleprotocolbuffersdynamic-on-debian-trixie.html" rel="noopener noreferrer"&gt;Compiling Google::ProtocolBuffers::Dynamic on Debian Trixie&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;For a long time I have been trying to encourage Perl Module authors to include installation instruction when external libraries are needed. Even if only for one or two Linux distributions. This information should be in the README of &lt;a href="https://github.com/mbarbon/google-protobuf-dynamic" rel="noopener noreferrer"&gt;the project&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/egor/2026/04/happy-sharing.html" rel="noopener noreferrer"&gt;Happy sharing&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;How to share memory between processes? A survey of a bunch od Data::* modules.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.perl.com/article/making-an-asynchronous-clocking-drum-machine-in-perl/" rel="noopener noreferrer"&gt;Making an Asynchronous Clocking Drum Machine App in Perl&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/petamem/2026/04/rust-pdl-part-two.html" rel="noopener noreferrer"&gt;PDL in Rust -- Part Two&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;"The current PDL implementation in pperl covers roughly 3,000 assertions end-to-end: about 1,400 on the Perl-facing connector side and about 1,600 on the engine side. As of this writing roughly 98% of the connector assertions match upstream PDL 2.103 exactly, and most of the remaining couple of dozen we already know why they fail. By the time you read this the numbers will have drifted a little in our favour - give or take - but the shape is the point, not the decimal."&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1sog0en/parsing_a_csv_with_boms_in_every_line/" rel="noopener noreferrer"&gt;parsing a csv with boms in every line&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;What kind of strange things people have to deal with?&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.reddit.com/r/perl/comments/1sn5he3/a_curious_case_of_an_autovivified_env_var/" rel="noopener noreferrer"&gt;A curious case of an autovivified env var&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Should the documentation of autovivification be comprehensive?&lt;/p&gt;




&lt;h2&gt;
  
  
  Grants
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/maintaining_perl_dave_mitchell_march_2026" rel="noopener noreferrer"&gt;Maintaining Perl 5 Core (Dave Mitchell): March 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/pevans_core_dev_march_2026" rel="noopener noreferrer"&gt;PEVANS Core Perl 5: Grant Report for March 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://news.perlfoundation.org/post/maintaining_perl_tonyc_march_2026" rel="noopener noreferrer"&gt;Maintaining Perl (Tony Cook) March 2026&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Perl
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blogs.perl.org/users/psc/2026/04/this-week-in-psc-220-2026-04-13.html" rel="noopener noreferrer"&gt;This week in PSC (221) | 2026-04-13&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  The Weekly Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://theweeklychallenge.org" rel="noopener noreferrer"&gt;The Weekly Challenge&lt;/a&gt; by &lt;a href="https://manwar.org" rel="noopener noreferrer"&gt;Mohammad Sajid Anwar&lt;/a&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/perl-weekly-challenge-370" rel="noopener noreferrer"&gt;The Weekly Challenge - 370&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Welcome to a new week with a couple of fun tasks "Popular Word" and "Scramble String". If you are new to the weekly challenge then why not join us and have fun every week. For more information, please read the &lt;a href="https://theweeklychallenge.org/faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://theweeklychallenge.org/blog/recap-challenge-369" rel="noopener noreferrer"&gt;RECAP - The Weekly Challenge - 369&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Valid Tag" and "Group Division" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-369-1.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge 369: Valid Tag&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post provides multiple amazing examples of technical versatility by providing a clean and direct solution written clearly in many different programming languages with tremendous flair, it shows great elegance in presenting the elegant and simple solution to the valid tag problem using the idiomatic language of each respective programming language. Abigail shows off expert level code writing skills by using the advanced character class arithmetic features present within Perl; these advanced ways of manipulating strings show the efficiency of his coding style, while simultaneously creating visually appealing code.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-369-2.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge 369: Group Division&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This post offers an extremely polished and versatile engineering design for the island program project. Abigail has shown advanced expertise by using a 'chunk-and-fill' method over many different programming languages (Perl, C, and less common languages such as sed, including details on how string slices and fill-up strings can be done with the least amount of impact. Furthermore, it highlights a creative use of string replication operators as well as very efficient use of loops that guarantee that the final incomplete group will still have the correct amount of padding added based on the requirements given in the challenge.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://raku-musings.com/tag-division.html" rel="noopener noreferrer"&gt;Tag Division&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In an idiomatic Raku implementation of the Group Division problem, as shown pretty clearly here by Arne Sommer, the gather/take construct is utilised nicely to collect the data clearly, and with the use of substr-rw for in-place string manipulation and the replication operator (x) to add padding, the solution is both easily readable and aesthetically pleasing.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.braincells.com/perl/2026/04/perl_weekly_challenge_week_369.html" rel="noopener noreferrer"&gt;Perl Weekly Challenge: Week 369&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;By taking advantage of mathematical precision and the crispness of concise syntax through the use of "one liners", Jaldhar has developed an efficient method for solving this problem, no matter if you're using Raku or Perl. Calculating the required amount of padding to add to a split string before actually splitting it, allows for quick and accurate results. Furthermore, the clever application of native string manipulation functions adds an additional level of efficiency and clarity to handling the grouping logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.sommrey.de/the-bears-den/2026/04/17/ch-369.html" rel="noopener noreferrer"&gt;Divided Tags&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This article offers a detailed examination of the many aspects of the "Valid Tag" challenge and provides a well-defined "word" in order to enhance the accuracy of processing. The body of this technical paper describes Jorg's unique application of the Perl programming language's ability to utilise global regular expressions (regex) to solve Task 2; and also the excellent "Shape" verb from the J programming language that has provided an efficient and generalised way to reshape and pad multi-dimensional arrays.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://kolouch.net/perlweeklychallenge/blog-369.html" rel="noopener noreferrer"&gt;The Weekly Challenge 369&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, we look at the approach both challenges in a disciplined and structured manner. The focus is on having code that is easy to maintain and easy to read. We have examples showing clean, modular Perl and Python code, and show examples of how the "Group Division" challenge is solved using efficient use of list slicing and using generator expressions to partition and pad strings in a method that's worthy of professional quality.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://fluca1978.github.io/2026/04/13/PerlWeeklyChallenge369.html" rel="noopener noreferrer"&gt;string indexes&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Luca Ferrari exhibits an incredible degree of technical ability through his creation of five unique environments in which to accomplish the Week 369 challenges. Those five programming environments are: Raku, Python, PostgreSQL (PL/Perl, PL/PgSQL, and PL/Java). Luca's elegant use of Raku's rotor method combined with the ability of Python's list slicing to achieve the same complex logic for string padding and partitioning, as demonstrated in his application of The Group Division challenge, show how many different programming languages can utilise very diverse methods to accomplish the same technically precise logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wlmb.github.io/2026/04/13/PWC369/" rel="noopener noreferrer"&gt;Perl Weekly Challenge 369&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The post demonstrates exceptional compact Perl programming by distilling complex string processing procedures into "1.5-liners" that are quite efficient. For Task 1, he builds camelCase tags from a string of input values using the split, map, and join functions in order to achieve the desired result in one pass. In addition, Luis's approach to Task 2 makes use of a brilliant "alternation" regex (.{$size}|.+) as a means of capturing both full and partial segments of an input string in an optimal manner. The use of this regex allows him to create direct array-index padding, resulting in code that is not only concise, but also very technically accurate and well-balanced between the two principles.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-369/challenge-369/matthias-muth#readme" rel="noopener noreferrer"&gt;Good Tags and Good Chunks&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Matthias Muth has written an impressive article on internationalisation (I18N) relating to pragmatic problem solving while still maintaining a strong long-term support model through thoughtful design choices such as those found within both the "Valid Tag" and "Group Division" solutions provided by Matthias's book. The use of the Text::Unidecode module was one way to create technically superior solutions that would accommodate for the presence of non-ASCII character sets and would also adhere to the rules specified in the challenge itself (e.g., valid tag). Additionally, his solution for "Group Division" is equally amazing because he accomplished this via a mathematical pad for the purpose of executing a clean single regex global match - or a single line of functional code - that could otherwise be accomplished via several iterations of code.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://packy.dardan.com/b/nR" rel="noopener noreferrer"&gt;Strings Will Tear Us Apart&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In this post, Packy gives a thorough, contemporary example of string handling in Raku, Perl, Python, and Elixir. He creates a unique solution to the "Group Division" challenge by using the Raku function .comb with integer arguments to automatically divide into chunks and by using the Perl 'unpack' function with a per-function constructed template, demonstrating how you can creatively employ language idioms to efficiently and effectively resolve a common programming issue and provide a solution for data partitioning that uses little or minimal resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://ccgi.campbellsmiths.force9.co.uk/challenge/369" rel="noopener noreferrer"&gt;Fun with strings&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In his article, Peter presents a practical and polished approach to developing an order of operations for the sanitisation of strings. By organising the procedure so that lower case, regular expression character removal, and space &amp;amp; character combination are completed before the creation of camelCase, the end product meets the requirements for both camel case formatting as well as length requirements while still producing clean, effective code.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc369-1" rel="noopener noreferrer"&gt;The Weekly Challenge - 369: Valid Tag&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;In Reinier's method, a model for defensive programming has been developed that features validation of input for real alphabetic values before processing. Also, he has taken a somewhat technical approach (transforming input to remove non-letter characters by converting them to spaces in order to apply camelCase correctly while keeping word boundaries intact) through his use of multiple accurately readable regular expressions.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://reiniermaliepaard.nl/pwc/index.php?id=pwc369-2" rel="noopener noreferrer"&gt;The Weekly Challenge - 369: Group Division&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Reinier has created a very good tutorial solution which showcases how to use the "Perl 4-argument substr function" to extract and remove data from a string using a while loop to do so iteratively and then using string replication for the final padding makes the code extremely readable and a great technical example of using efficient in-place usage of strings.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://hatley-software.blogspot.com/2026/04/robbie-hatleys-solutions-in-perl-for_16.html" rel="noopener noreferrer"&gt;The Weekly Challenge #369&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The work done by Robbie within the "Valid Tag" review indicates a very well thought out way to approach hyphenated compound words as a single entity for case adjustment, in addition to providing an innovative solution for "Group Division", by utilising the four-argument form of Perl's substr in order to easily "chop and fill" strings, while also demonstrating his superior knowledge of high-performance string manipulation.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.firedrake.org/archive/2026/04/The_Weekly_Challenge_369__Divided_Validity.html" rel="noopener noreferrer"&gt;Divided Validity&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Roger's technical review offers an interesting side-by-side comparison of various string handling paradigms from multiple programming languages. The "Valid Tag" part of the review shows how Crystal's highly performant state machine implementation allows for case conversion to be accomplished in a single pass. The "Group Division" analysis of in_groups_of() in Crystal is very interesting as well, as it illustrates just how compact that library function is compared to typical iterative slicing found in Typst, demonstrating that using built-in library functions can greatly simplify the implementation of algorithmic logic through less code complexity.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dev.to/simongreennet/weekly-challenge-group-tag-k56"&gt;Group Tag&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;A wonderful illustration of Test-driven development is Simon's critique of Challenge 369. He found through tests that the sanitisation step of "Valid Tag", had to be completed before performing case formatting so that example 5 is handled properly. He also provides useful technical comparisons between both languages' ecosystem strengths, such as Python using more_itertools.grouper vs Perl doing it manually by iteration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Weekly collections
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="http://niceperl.blogspot.com/" rel="noopener noreferrer"&gt;NICEPERL's lists&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://niceperl.blogspot.com/2026/04/dxcvi-9-great-cpan-modules-released.html" rel="noopener noreferrer"&gt;Great CPAN modules released last week&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Events
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://luma.com/perl-maven" rel="noopener noreferrer"&gt;Perl Maven online: Testing in Perl - part 4&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;April 23, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.perl.com/article/announcing-the-perl-toolchain-summit-2026/" rel="noopener noreferrer"&gt;Perl Toolchain Summit 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;April 23-26, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://boston.pm.org/" rel="noopener noreferrer"&gt;Boston Perl Mongers virtual monthly&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;May 12, 2026&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://tprc.us/tprc-2026-gsp/" rel="noopener noreferrer"&gt;The Perl and Raku Conference 2026&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;June 26-29, 2026, Greenville, SC, USA&lt;/p&gt;




&lt;p&gt;You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.&lt;/p&gt;

&lt;p&gt;Want to see more? See the &lt;a href="https://perlweekly.com/archive/" rel="noopener noreferrer"&gt;archives&lt;/a&gt; of all the issues.&lt;/p&gt;

&lt;p&gt;Not yet subscribed to the newsletter? &lt;a href="https://perlweekly.com/subscribe.html" rel="noopener noreferrer"&gt;Join us free of charge&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;(C) Copyright &lt;a href="https://szabgab.com/" rel="noopener noreferrer"&gt;Gabor Szabo&lt;/a&gt;&lt;br&gt;
The articles are copyright the respective authors.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>news</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
