Issue #776 - 2026-06-08 - Learning Perl

latest | archive | edited by Mohammad Sajid Anwar
This edition was made possible by the supporters of our cause.
Don't miss the next issue!

Hi there,

Recently, I came across an article, The Day I Decided Never to Learn Python by Randal L. Schwartz. Well, Randal doesn't need an introduction. He took us back to 2001, the same era when I first started learning Perl in 1999. He was a major guiding force during my early programming days.

Last week, I joined a live session by Gabor focussed on FalkorDB. 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 Dancer2 project. Those were the golden days, when I had so much energy and time. That being said, I am still actively learning Perl 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 GraphQL for the first time, and I've also been experimenting with RAG and JSON-RPC. I have shared my recent experiments down below.

The process of learning never stops. A few days ago, I noticed an update for HTTP::Message v7.02. Since it was released by Olaf Alders, 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, Karen Etheridge. Amidst all of this, I am still trying to find time for my upcoming book on DBIx::Class. I recently shared a blog post demonstrating the power of DBIC components, and I am trying my best not to lose focus.

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.

Mohammad Sajid Anwar


Announcements

This week in PSC (227) | 2026-06-01

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.


Articles

Result Class - Components

by Mohammad Sajid Anwar (MANWAR)

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

RAG with Perl

by Mohammad Sajid Anwar (MANWAR)

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.

CPAN Debian Package

by Mohammad Sajid Anwar (MANWAR)

First time managed to build a debian package for DBIx::Class::Async with step by step instructions.

JSON-RPC with Perl

by Mohammad Sajid Anwar (MANWAR)

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.

Mojo meets GraphQL

by Mohammad Sajid Anwar (MANWAR)

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.

DBIx::Class and GraphQL

by Mohammad Sajid Anwar (MANWAR)

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.

CPAN and GraphQL

by Mohammad Sajid Anwar (MANWAR)

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.


CPAN

FalkorDB

by Gabor Szabo (SZABGAB)

Perl client module for FalkorDB. This code was mostly generated using AI tools and has not been checked manually yet.

DBIx::Class::Schema::GraphQL

by Mohammad Sajid Anwar (MANWAR)

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


Grants

The Weekly Challenge

The Weekly Challenge by Mohammad Sajid Anwar will help you step out of your comfort-zone. You can even win prize money of $50 by participating in the weekly challenge. We pick one champion at the end of the month from among all of the contributors during the month, thanks to the sponsor Marc Perry.

The Weekly Challenge - 377

by Mohammad Sajid Anwar (MANWAR)

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 FAQ.

RECAP - The Weekly Challenge - 376

by Mohammad Sajid Anwar (MANWAR)

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.

Doubled Chessboard

by Arne Sommer

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.

Doubled Words

by Bob Lied

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.

Chess Solo

by Jorg Sommrey

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.

The Weekly Challenge 376

by Lubos Kolouch

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.

Perl Weekly Challenge 376

by W Luis Mochan

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.

A 1-Bit Chessboard and Fancy Separators

by Matthias Muth

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.

You might think I’m crazy, but I don’t even care

by Packy Anderson (PACKY)

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.

Squares and pairs

by Peter Campbell Smith

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 (& 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.

The Weekly Challenge - 376: Chessboard Squares

by Reinier Maliepaard

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.

The Weekly Challenge #376

by Robbie Hatley

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.

Half a Chessboard

by Roger Bell West (FIREDRAKE)

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.

Double chessboard

by Simon Green (SGREEN)

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.


Rakudo

2026.22 Some AST Fruit

by Elizabeth Mattijsen (ELIZABETH)


Weekly collections

The corner of Gabor

A couple of entries sneaked in by Gabor.

FalkorDB client in Perl using CLI AI Agents

by Gabor Szabo (SZABGAB)

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

FalkorDB using Perl

by Gabor Szabo (SZABGAB)

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

Next: Perl development using AI

by Gabor Szabo (SZABGAB)

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!

Growing Pains: Scaling AI Coding across Team and Repo Boundaries with Graham Knapp

by Graham Knapp

Video recordings from the session yesterday. It is not Perl specific, but helps you understand things. For more such event, sign up to the Code Mavens Meetup group


Events

Paris.pm monthly meeting

June 10, 2026

The Perl and Raku Conference 2026

June 26-29, 2026, Greenville, SC, USA



You know, you could get the Perl Weekly right in your mailbox. Every Week.
Free of charge!

Just ONE e-mail each Monday. Easy to unsubscribe. No spam. Your e-mail address is safe.
Perl Weekly on Twitter RSS Feed of the Perl Weekly. Updated once a week