MESSAGE
| DATE | 2026-04-20 |
| FROM | Gabor Szabo
|
| SUBJECT | Subject: [Hangout - NYLXS] [Perlweekly] #769 - What is dead this week?
|
From hangout-bounces-at-nylxs.com Mon Apr 20 12:13:39 2026 Return-Path: X-Original-To: archive-at-mrbrklyn.com Delivered-To: archive-at-mrbrklyn.com Received: from www2.mrbrklyn.com (www2.mrbrklyn.com [96.57.23.82]) by mrbrklyn.com (Postfix) with ESMTP id 0F13616410E; Mon, 20 Apr 2026 12:13:38 -0400 (EDT) X-Original-To: hangout-at-www2.mrbrklyn.com Delivered-To: hangout-at-www2.mrbrklyn.com Received: by mrbrklyn.com (Postfix, from userid 1000) id D33F316410C; Mon, 20 Apr 2026 12:13:33 -0400 (EDT) Resent-From: Ruben Safir Resent-Date: Mon, 20 Apr 2026 12:13:33 -0400 Resent-Message-ID: <20260420161333.GA6833-at-www2.mrbrklyn.com> Resent-To: hangout-at-mrbrklyn.com X-Original-To: ruben-at-mrbrklyn.com Delivered-To: ruben-at-mrbrklyn.com Received: from s.wfbtzhsv.outbound-mail.sendgrid.net (s.wfbtzhsv.outbound-mail.sendgrid.net [159.183.224.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mrbrklyn.com (Postfix) with ESMTPS id C0EB116410A for ; Mon, 20 Apr 2026 10:15:48 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szabgab.com; h=content-type:date:from:mime-version:subject:to:cc:content-type:date: from:subject:to; s=s1; t=1776694545; bh=6ODXa4GIFYd3FaG748AuQM0T4suLP3ChBugYcEN0WAo=; b=wdq9o4rEzeSe7H4zc6Q0lmeLxSNbscHH1yq7q17JCXtuT9X18hJcajSXM3xcd+rngS0p jh0FejCKVPq6QbR3luTfiGm/3XgsHJpTAc5rHxLKF1cgkgd/hzKW1+9CuSNCo2QEh2MsPg haK2Wwbh75tleadFs6ekHP1naxjb7iK4KtshE6nwPaFJn/k+u9O+7np9zbiuoOLnku57ts DuU2NejOfVQur6XST167gkaE4W8gcpttbh31PhGv8XBedz6u7G8diiYwt/SFyzookvuIU4 4osEj8F6XAyHbMQ6B2yxBatx9MjTHSko1bt5x4nxKS1rWyZWGWvJn2Y6hURzNUIA== Received: by recvd-6d84ff477d-gmmsp with SMTP id recvd-6d84ff477d-gmmsp-1-69E63511-7B 2026-04-20 14:15:45.729031901 +0000 UTC m=+887495.241093942 Received: from MjA0MzMyMDc (unknown) by geopod-ismtpd-7 (SG) with HTTP id pmUz7mlGR6y04T16QcKlCw Mon, 20 Apr 2026 14:15:45.633 +0000 (UTC) Date: Mon, 20 Apr 2026 14:15:45 +0000 (UTC) From: Gabor Szabo Mime-Version: 1.0 Message-ID: X-SG-EID: =?us-ascii?Q?u001=2EfEeT3imdomNYTgM3CPMr=2F5Dkst8c96g=2FUCTCSTQhFzPFq1p+hf5OYWVNg?= =?us-ascii?Q?tIP=2F6ApbxJo=2Fjy7Zy5XCVjZWHAlUg8mwQcU4Zn7?= =?us-ascii?Q?SPbGCPvnVJ4D7rFMUJxECrgSZzsaod6lYMYTkm7?= =?us-ascii?Q?ChdpHA9p4z9OVq2Dx2=2FT8yWqV0HbxK7glK7q=2Fw8?= =?us-ascii?Q?Dzq7kFfPOYqo3YwTX+0rZwsRxcP0vwX0bmpzs20?= =?us-ascii?Q?g=3D=3D?= To: ruben-at-mrbrklyn.com X-Entity-ID: u001.JvYq+PmxR+Jk4HAvLs9YyA== Subject: [Hangout - NYLXS] [Perlweekly] #769 - What is dead this week? X-BeenThere: hangout-at-nylxs.com X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: NYLXS Tech Talk and Politics List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============0794229255==" Errors-To: hangout-bounces-at-nylxs.com Sender: "Hangout"
--===============0794229255== Content-Type: multipart/alternative; boundary=9a3d815dd89d00c2af46ba9ee4991fc2de0b575529571a89e7fa2f8b42a9
--9a3d815dd89d00c2af46ba9ee4991fc2de0b575529571a89e7fa2f8b42a9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0
Perl Weekly=20
https://perlweekly.com/
You can read the newsletter on the web, if you prefer. https://perlweekly.com/archive/769.html
Hi there,
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.
Last week finally I got home and because of the flight I had to postpone the Testing in Perl ( https://luma.com/perl-maven ) event so it will be held this Thursday. You are invited to watch the previous sessions ( https://academy.code-maven.com/c/perl-testing-2026 ) (for now free of charge) and join the next one.
The Perl Maven WhatsApp group ( https://chat.whatsapp.com/LRrkZsSRDvGLLwppyLnKHy ) 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!
Enjoy your week!
-- Your editor: Gabor Szabo.
Announcements
=20 TPRC Talk Submission Deadline in 2 days! https://news.perlfoundation.org/post/tprc-talk-deadline =20 =20 --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Articles
=20 Faster UTF-8 Validation https://blogs.perl.org/users/chansen/2026/04/faster-utf-8-validation.html =20 Way more information about UTF-8 than I can fit in my head. --------------
=20 Enums for Perl: Adopting Devel::CallParser and Building Enum::Declare https://dev.to/lnationorg/enums-for-perl-adopting-develcallparser-and-bui= lding-enumdeclare-28bj =20 =20 --------------
=20 Compiling Google::ProtocolBuffers::Dynamic on Debian Trixie https://blogs.perl.org/users/dean/2026/04/compiling-googleprotocolbuffers= dynamic-on-debian-trixie.html =20 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 the project ( https://github.com/mbarbon/google-protobuf-dynamic ). --------------
=20 Happy sharing https://blogs.perl.org/users/egor/2026/04/happy-sharing.html =20 How to share memory between processes? A survey of a bunch od Data::* modules. --------------
=20 Making an Asynchronous Clocking Drum Machine App in Perl https://www.perl.com/article/making-an-asynchronous-clocking-drum-machine= -in-perl/ =20 =20 --------------
=20 PDL in Rust -- Part Two https://blogs.perl.org/users/petamem/2026/04/rust-pdl-part-two.html =20 "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." --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Discussion
=20 parsing a csv with boms in every line https://www.reddit.com/r/perl/comments/1sog0en/parsing_a_csv_with_boms_in= _every_line/ =20 What kind of strange things people have to deal with? --------------
=20 A curious case of an autovivified env var https://www.reddit.com/r/perl/comments/1sn5he3/a_curious_case_of_an_autov= ivified_env_var/ =20 Should the documentation of autovivification be comprehensive? --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Grants
=20 Maintaining Perl 5 Core (Dave Mitchell): March 2026 https://news.perlfoundation.org/post/maintaining_perl_dave_mitchell_march= _2026 =20 =20 --------------
=20 PEVANS Core Perl 5: Grant Report for March 2026 https://news.perlfoundation.org/post/pevans_core_dev_march_2026 =20 =20 --------------
=20 Maintaining Perl (Tony Cook) March 2026 https://news.perlfoundation.org/post/maintaining_perl_tonyc_march_2026 =20 =20 --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Perl
=20 This week in PSC (221) | 2026-04-13 https://blogs.perl.org/users/psc/2026/04/this-week-in-psc-220-2026-04-13.= html =20 =20 --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
The Weekly Challenge The Weekly Challenge ( https://theweeklychallenge.org ) by Mohammad Sajid Anwar ( https://manwar.org ) 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. =20 The Weekly Challenge - 370 https://theweeklychallenge.org/blog/perl-weekly-challenge-370 =20 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 FAQ ( https://theweeklychallenge.org/faq ). --------------
=20 RECAP - The Weekly Challenge - 369 https://theweeklychallenge.org/blog/recap-challenge-369 =20 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. --------------
=20 Perl Weekly Challenge 369: Valid Tag https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-369-1.html =20 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. --------------
=20 Perl Weekly Challenge 369: Group Division https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-369-2.html =20 This post offers an extremely polished and versatile engineering design f= or 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. --------------
=20 Tag Division https://raku-musings.com/tag-division.html =20 In an idiomatic Raku implementation of the Group Division problem, as sho= wn 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. --------------
=20 Perl Weekly Challenge: Week 369 https://www.braincells.com/perl/2026/04/perl_weekly_challenge_week_369.ht= ml =20 By taking advantage of mathematical precision and the crispness of concis= e 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. --------------
=20 Divided Tags https://github.sommrey.de/the-bears-den/2026/04/17/ch-369.html =20 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. --------------
=20 The Weekly Challenge 369 https://kolouch.net/perlweeklychallenge/blog-369.html =20 In this post, we look at the approach both challenges in a disciplined an= d 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. --------------
=20 string indexes https://fluca1978.github.io/2026/04/13/PerlWeeklyChallenge369.html =20 Luca Ferrari exhibits an incredible degree of technical ability through h= is 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. --------------
=20 Perl Weekly Challenge 369 https://wlmb.github.io/2026/04/13/PWC369/ =20 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. --------------
=20 Good Tags and Good Chunks https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-369/c= hallenge-369/matthias-muth#readme =20 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. --------------
=20 Strings Will Tear Us Apart https://packy.dardan.com/b/nR =20 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. --------------
=20 Fun with strings http://ccgi.campbellsmiths.force9.co.uk/challenge/369 =20 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 & 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. --------------
=20 The Weekly Challenge - 369: Valid Tag https://reiniermaliepaard.nl/pwc/index.php?id=3Dpwc369-1 =20 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. --------------
=20 The Weekly Challenge - 369: Group Division https://reiniermaliepaard.nl/pwc/index.php?id=3Dpwc369-2 =20 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. --------------
=20 The Weekly Challenge #369 https://hatley-software.blogspot.com/2026/04/robbie-hatleys-solutions-in-= perl-for_16.html =20 The work done by Robbie within the "Valid Tag" review indicates a very we= ll 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. --------------
=20 Divided Validity https://blog.firedrake.org/archive/2026/04/The_Weekly_Challenge_369__Divi= ded_Validity.html =20 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. --------------
=20 Group Tag https://dev.to/simongreennet/weekly-challenge-group-tag-k56 =20 A wonderful illustration of Test-driven development is Simon's critique o= f 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Weekly collections
=20 NICEPERL's lists http://niceperl.blogspot.com/ =20 Great CPAN modules released last week ( https://niceperl.blogspot.com/2026/04/dxcvi-9-great-cpan-modules-released .html ). --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Events
=20 Perl Maven online: Testing in Perl - part 4 https://luma.com/perl-maven =20 April 23, 2026 --------------
=20 Perl Toolchain Summit 2026 https://www.perl.com/article/announcing-the-perl-toolchain-summit-2026/ =20 April 23-26, 2026 --------------
=20 Boston Perl Mongers virtual monthly https://boston.pm.org/ =20 May 12, 2026 --------------
=20 The Perl and Raku Conference 2026 https://tprc.us/tprc-2026-gsp/ =20 June 26-29, 2026, Greenville, SC, USA --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
You joined the Perl Weekly to get weekly e-mails about the Perl programming= language and related topics.
Want to see more? See the archives ( https://perlweekly.com/archive/ ) of a= ll the issues.
Reading this as a non-subscriber? Join us free of charge. https://perlweekl= y.com/
(C) Copyright Gabor Szabo https://szabgab.com/ The articles are copyright the respective authors.
You can freely redistribute this message if you keep the whole message intact, including the Copyright notice and this text.
If you don't want to receive mails any more you can unsubscribe here: https://perlweekly.com/unsubscribe.html
--9a3d815dd89d00c2af46ba9ee4991fc2de0b575529571a89e7fa2f8b42a9 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii Mime-Version: 1.0
1.0, user-scalable=3Dyes"> Perl Weekly Issue #769 - 2026-04-20 - What is dead this week?le>
color=3D"#ffffff">
background-color: #004065; color: #FFF; text-decoration: none; font-size: 40px; font-weight: bold; font-family: Gadget; =20 border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border: 1px solid #000; padding: 10px; ">Perl Weekly =20
style=3D"border-bottom: 1px solid #ccc; padding-bottom: 8px; font-size: 18px;"> Issue #769 - 2026-04-20 - What is dead this week?
latest | https://perlweekly.com/archive">archive | edited by szabgab.com/">Gabor Szabo
=20 =20
=20
|
=20 Hi there,
=20 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 programmin= g languages.
=20 Last week finally I got home and because of the flight I had to pos= tpone the Testing in Perl event= so it will be held this Thursday. You are invited to ademy.code-maven.com/c/perl-testing-2026">watch the previous sessions (= for now free of charge) and join the next one.
=20 The Pe= rl Maven WhatsApp group 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. An= yway, you are invited to join us!
=20 Enjoy your week!
=20 Your editor: Gabor Szabo.
| mg/gabor_szabo.png" /> |
|
Announcementsiv> =20 | =20 =20 | =20 =20
Articles =20 | =20 | m/img/christian_hansen.png" title=3D"Christian Hansen" width=3D"80" /> | =20 | =20 =20 | =20 | m/img/dean_hamstead.jpg" title=3D"Dean Hamstead" width=3D"80" /> | =20 | =20 =20 | =20 =20 | =20 =20 > -pdl-part-two.html" style=3D" font-size: 18px; font-weight: bold; ">PDL in Rust -- Part Two =20 by mem.com/">PetaMem
nt-size: 16px"> "The current PDL implementation in pperl covers roughly 3,= 000 assertions end-to-end: about 1,400 on the Perl-facing connector side an= d about 1,600 on the engine side. As of this writing roughly 98% of the con= nector assertions match upstream PDL 2.103 exactly, and most of the remaini= ng 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." =20 =20 | =20 | =20 =20
Discussion =20 | =20 =20 | =20 | m/img/brian_d_foy.png" title=3D"brian d foy" width=3D"80" /> | =20 | =20 =20
Grants =20 | =20 =20 | =20 | m/img/paul_evans.png" title=3D"Paul Evans" width=3D"80" /> | =20 | =20 =20 | =20 =20
Perl =20 | =20 =20 | =20 =20
The Weekly Chall= enge =20 nge.org">The Weekly Challenge by Mohamma= d 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 o= ne champion at the end of the month from among all of the contributors duri= ng the month, thanks to the sponsor Marc Perry. =20 | =20 | m/img/mohammad_anwar.png" title=3D"Mohammad Sajid Anwar" width=3D"80" /> | =20 | =20 | m/img/mohammad_anwar.png" title=3D"Mohammad Sajid Anwar" width=3D"80" /> | =20 | =20 =20 > nge/week-369-1.html" style=3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 369: Valid Tag =20 by Abigail
le=3D"font-size: 16px"> This post provides multiple amazing examples of technical = versatility by providing a clean and direct solution written clearly in man= y different programming languages with tremendous flair, it shows great ele= gance in presenting the elegant and simple solution to the valid tag proble= m using the idiomatic language of each respective programming language. Abi= gail shows off expert level code writing skills by using the advanced chara= cter class arithmetic features present within Perl; these advanced ways of = manipulating strings show the efficiency of his coding style, while simulta= neously creating visually appealing code. =20 =20 | =20 | =20 =20 > nge/week-369-2.html" style=3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 369: Group Division =20 by Abigail
le=3D"font-size: 16px"> This post offers an extremely polished and versatile engin= eering design for the island program project. Abigail has shown advanced ex= pertise by using a 'chunk-and-fill' method over many different programming = languages (Perl, C, and less common languages such as sed, including detail= s on how string slices and fill-up strings can be done with the least amoun= t of impact. Furthermore, it highlights a creative use of string replicatio= n 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. =20 =20 | =20 | =20 =20 > =3D" font-size: 18px; font-weight: bold; ">Tag Division =20 by ings.com/">Arne Sommer
=3D"font-size: 16px"> In an idiomatic Raku implementation of the Group Division = problem, as shown pretty clearly here by Arne Sommer, the gather/take const= ruct is utilised nicely to collect the data clearly, and with the use of su= bstr-rw for in-place string manipulation and the replication operator (x) t= o add padding, the solution is both easily readable and aesthetically pleas= ing. =20 | m/img/arne-sommer.jpeg" title=3D"Arne Sommer" width=3D"80" /> | =20 | =20 =20 > ly_challenge_week_369.html" style=3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge: Week 369 =20 by Jaldhar H. Vyas =
By taking advantage of mathematical precision and the cris= pness of concise syntax through the use of "one liners", Jaldhar has develo= ped 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 functio= ns adds an additional level of efficiency and clarity to handling the group= ing logic.
=20 =20 | =20 | =20 =20 > 7/ch-369.html" style=3D" font-size: 18px; font-weight: bold; ">Divided Tags =20 by ommrey.de/">Jorg Sommrey
e=3D"font-size: 16px"> This article offers a detailed examination of the many asp= ects of the "Valid Tag" challenge and provides a well-defined "word" in ord= er to enhance the accuracy of processing. The body of this technical paper = describes Jorg's unique application of the Perl programming language's abil= ity to utilise global regular expressions (regex) to solve Task 2; and also= the excellent "Shape" verb from the J programming language that has provid= ed an efficient and generalised way to reshape and pad multi-dimensional ar= rays. =20 =20 | =20 | =20 =20 > html" style=3D" font-size: 18px; font-weight: bold; ">The Weekly Challenge 369 =20 by Lubos Kolouch =
In this post, we look at the approach both challenges in a= disciplined and structured manner. The focus is on having code that is eas= y to maintain and easy to read. We have examples showing clean, modular Per= l and Python code, and show examples of how the "Group Division" challenge = is solved using efficient use of list slicing and using generator expressio= ns to partition and pad strings in a method that's worthy of professional q= uality.
=20 =20 | =20 | =20 =20 > Challenge369.html" style=3D" font-size: 18px; font-weight: bold; ">string indexes =20 by .blogspot.com">Luca Ferrari
tyle=3D"font-size: 16px"> Luca Ferrari exhibits an incredible degree of technical ab= ility through his creation of five unique environments in which to accompli= sh 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 a= chieve the same complex logic for string padding and partitioning, as demon= strated in his application of The Group Division challenge, show how many d= ifferent programming languages can utilise very diverse methods to accompli= sh the same technically precise logic. =20 =20 | =20 | =20 =20 > =3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 369 =20 by hub.io/">W Luis Mochan
=3D"font-size: 16px"> 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 t= he 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 capturi= ng 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, resu= lting in code that is not only concise, but also very technically accurate = and well-balanced between the two principles. =20 | m/img/luis-mochan.jpeg" title=3D"W Luis Mochan" width=3D"80" /> | =20 | =20 =20 > ge-club/tree/muthm-369/challenge-369/matthias-muth#readme" style=3D" font-size: 18px; font-weight: bold; ">Good Tags and Good Chunks =20 by Matthias Muth =
Matthias Muth has written an impressive article on interna= tionalisation (I18N) relating to pragmatic problem solving while still main= taining a strong long-term support model through thoughtful design choices = such as those found within both the "Valid Tag" and "Group Division" soluti= ons 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 rule= s specified in the challenge itself (e.g., valid tag). Additionally, his so= lution for "Group Division" is equally amazing because he accomplished this= via a mathematical pad for the purpose of executing a clean single regex g= lobal match - or a single line of functional code - that could otherwise be= accomplished via several iterations of code.
=20 =20 | =20 | =20 =20 > font-size: 18px; font-weight: bold; ">Strings Will Tear Us Apart =20 by rl.org/users/packy_anderson/">Packy Anderson (<= a href=3D"https://metacpan.org/author/PACKY">PACKY) = span> 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 th= e Perl 'unpack' function with a per-function constructed template, demonstr= ating how you can creatively employ language idioms to efficiently and effe= ctively resolve a common programming issue and provide a solution for data = partitioning that uses little or minimal resources.
=20
| m/img/packy-anderson.jpeg" title=3D"Packy Anderson" width=3D"80" /> | =20 | =20 =20 > /369" style=3D" font-size: 18px; font-weight: bold; ">Fun with strings =20 by bellsmiths.force9.co.uk/">Peter Campbell Smith =
In his article, Peter presents a practical and polished ap= proach to developing an order of operations for the sanitisation of strings= . By organising the procedure so that lower case, regular expression charac= ter removal, and space & character combination are completed before the cre= ation of camelCase, the end product meets the requirements for both camel c= ase formatting as well as length requirements while still producing clean, = effective code.
=20 | m/img/peter-campbell-smith.png" title=3D"Peter Campbell Smith" width=3D"80"= /> | =20 | =20 =20 > wc369-1" style=3D" font-size: 18px; font-weight: bold; ">The Weekly Challenge - 369: Valid Tag =20 by Reinier Maliepaard =
In Reinier's method, a model for defensive programming has= been developed that features validation of input for real alphabetic value= s before processing. Also, he has taken a somewhat technical approach (tran= sforming 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.
=20 =20 | =20 | =20 =20 > wc369-2" style=3D" font-size: 18px; font-weight: bold; ">The Weekly Challenge - 369: Group Division =20 by Reinier Maliepaard =
Reinier has created a very good tutorial solution which sh= owcases how to use the "Perl 4-argument substr function" to extract and rem= ove data from a string using a while loop to do so iteratively and then usi= ng string replication for the final padding makes the code extremely readab= le and a great technical example of using efficient in-place usage of strin= gs.
=20 =20 | =20 | =20 =20 | =20 =20 | =20 | m/img/simon-green.png" title=3D"Simon Green" width=3D"80" /> | =20 | =20 =20
Weekly collectio= ns =20 | =20 =20 | =20 =20
Events =20 | =20 =20 | =20 =20 > Content-Type: multipart/alternative; boundary=9a3d815dd89d00c2af46ba9ee4991fc2de0b575529571a89e7fa2f8b42a9
--9a3d815dd89d00c2af46ba9ee4991fc2de0b575529571a89e7fa2f8b42a9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0
Perl Weekly=20
https://perlweekly.com/
You can read the newsletter on the web, if you prefer. https://perlweekly.com/archive/769.html
Hi there,
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.
Last week finally I got home and because of the flight I had to postpone the Testing in Perl ( https://luma.com/perl-maven ) event so it will be held this Thursday. You are invited to watch the previous sessions ( https://academy.code-maven.com/c/perl-testing-2026 ) (for now free of charge) and join the next one.
The Perl Maven WhatsApp group ( https://chat.whatsapp.com/LRrkZsSRDvGLLwppyLnKHy ) 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!
Enjoy your week!
-- Your editor: Gabor Szabo.
Announcements
=20 TPRC Talk Submission Deadline in 2 days! https://news.perlfoundation.org/post/tprc-talk-deadline =20 =20 --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Articles
=20 Faster UTF-8 Validation https://blogs.perl.org/users/chansen/2026/04/faster-utf-8-validation.html =20 Way more information about UTF-8 than I can fit in my head. --------------
=20 Enums for Perl: Adopting Devel::CallParser and Building Enum::Declare https://dev.to/lnationorg/enums-for-perl-adopting-develcallparser-and-bui= lding-enumdeclare-28bj =20 =20 --------------
=20 Compiling Google::ProtocolBuffers::Dynamic on Debian Trixie https://blogs.perl.org/users/dean/2026/04/compiling-googleprotocolbuffers= dynamic-on-debian-trixie.html =20 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 the project ( https://github.com/mbarbon/google-protobuf-dynamic ). --------------
=20 Happy sharing https://blogs.perl.org/users/egor/2026/04/happy-sharing.html =20 How to share memory between processes? A survey of a bunch od Data::* modules. --------------
=20 Making an Asynchronous Clocking Drum Machine App in Perl https://www.perl.com/article/making-an-asynchronous-clocking-drum-machine= -in-perl/ =20 =20 --------------
=20 PDL in Rust -- Part Two https://blogs.perl.org/users/petamem/2026/04/rust-pdl-part-two.html =20 "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." --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Discussion
=20 parsing a csv with boms in every line https://www.reddit.com/r/perl/comments/1sog0en/parsing_a_csv_with_boms_in= _every_line/ =20 What kind of strange things people have to deal with? --------------
=20 A curious case of an autovivified env var https://www.reddit.com/r/perl/comments/1sn5he3/a_curious_case_of_an_autov= ivified_env_var/ =20 Should the documentation of autovivification be comprehensive? --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Grants
=20 Maintaining Perl 5 Core (Dave Mitchell): March 2026 https://news.perlfoundation.org/post/maintaining_perl_dave_mitchell_march= _2026 =20 =20 --------------
=20 PEVANS Core Perl 5: Grant Report for March 2026 https://news.perlfoundation.org/post/pevans_core_dev_march_2026 =20 =20 --------------
=20 Maintaining Perl (Tony Cook) March 2026 https://news.perlfoundation.org/post/maintaining_perl_tonyc_march_2026 =20 =20 --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Perl
=20 This week in PSC (221) | 2026-04-13 https://blogs.perl.org/users/psc/2026/04/this-week-in-psc-220-2026-04-13.= html =20 =20 --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
The Weekly Challenge The Weekly Challenge ( https://theweeklychallenge.org ) by Mohammad Sajid Anwar ( https://manwar.org ) 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. =20 The Weekly Challenge - 370 https://theweeklychallenge.org/blog/perl-weekly-challenge-370 =20 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 FAQ ( https://theweeklychallenge.org/faq ). --------------
=20 RECAP - The Weekly Challenge - 369 https://theweeklychallenge.org/blog/recap-challenge-369 =20 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. --------------
=20 Perl Weekly Challenge 369: Valid Tag https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-369-1.html =20 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. --------------
=20 Perl Weekly Challenge 369: Group Division https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-369-2.html =20 This post offers an extremely polished and versatile engineering design f= or 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. --------------
=20 Tag Division https://raku-musings.com/tag-division.html =20 In an idiomatic Raku implementation of the Group Division problem, as sho= wn 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. --------------
=20 Perl Weekly Challenge: Week 369 https://www.braincells.com/perl/2026/04/perl_weekly_challenge_week_369.ht= ml =20 By taking advantage of mathematical precision and the crispness of concis= e 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. --------------
=20 Divided Tags https://github.sommrey.de/the-bears-den/2026/04/17/ch-369.html =20 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. --------------
=20 The Weekly Challenge 369 https://kolouch.net/perlweeklychallenge/blog-369.html =20 In this post, we look at the approach both challenges in a disciplined an= d 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. --------------
=20 string indexes https://fluca1978.github.io/2026/04/13/PerlWeeklyChallenge369.html =20 Luca Ferrari exhibits an incredible degree of technical ability through h= is 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. --------------
=20 Perl Weekly Challenge 369 https://wlmb.github.io/2026/04/13/PWC369/ =20 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. --------------
=20 Good Tags and Good Chunks https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-369/c= hallenge-369/matthias-muth#readme =20 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. --------------
=20 Strings Will Tear Us Apart https://packy.dardan.com/b/nR =20 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. --------------
=20 Fun with strings http://ccgi.campbellsmiths.force9.co.uk/challenge/369 =20 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 & 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. --------------
=20 The Weekly Challenge - 369: Valid Tag https://reiniermaliepaard.nl/pwc/index.php?id=3Dpwc369-1 =20 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. --------------
=20 The Weekly Challenge - 369: Group Division https://reiniermaliepaard.nl/pwc/index.php?id=3Dpwc369-2 =20 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. --------------
=20 The Weekly Challenge #369 https://hatley-software.blogspot.com/2026/04/robbie-hatleys-solutions-in-= perl-for_16.html =20 The work done by Robbie within the "Valid Tag" review indicates a very we= ll 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. --------------
=20 Divided Validity https://blog.firedrake.org/archive/2026/04/The_Weekly_Challenge_369__Divi= ded_Validity.html =20 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. --------------
=20 Group Tag https://dev.to/simongreennet/weekly-challenge-group-tag-k56 =20 A wonderful illustration of Test-driven development is Simon's critique o= f 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Weekly collections
=20 NICEPERL's lists http://niceperl.blogspot.com/ =20 Great CPAN modules released last week ( https://niceperl.blogspot.com/2026/04/dxcvi-9-great-cpan-modules-released .html ). --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Events
=20 Perl Maven online: Testing in Perl - part 4 https://luma.com/perl-maven =20 April 23, 2026 --------------
=20 Perl Toolchain Summit 2026 https://www.perl.com/article/announcing-the-perl-toolchain-summit-2026/ =20 April 23-26, 2026 --------------
=20 Boston Perl Mongers virtual monthly https://boston.pm.org/ =20 May 12, 2026 --------------
=20 The Perl and Raku Conference 2026 https://tprc.us/tprc-2026-gsp/ =20 June 26-29, 2026, Greenville, SC, USA --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
You joined the Perl Weekly to get weekly e-mails about the Perl programming= language and related topics.
Want to see more? See the archives ( https://perlweekly.com/archive/ ) of a= ll the issues.
Reading this as a non-subscriber? Join us free of charge. https://perlweekl= y.com/
(C) Copyright Gabor Szabo https://szabgab.com/ The articles are copyright the respective authors.
You can freely redistribute this message if you keep the whole message intact, including the Copyright notice and this text.
If you don't want to receive mails any more you can unsubscribe here: https://perlweekly.com/unsubscribe.html
--9a3d815dd89d00c2af46ba9ee4991fc2de0b575529571a89e7fa2f8b42a9 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii Mime-Version: 1.0
1.0, user-scalable=3Dyes"> Perl Weekly Issue #769 - 2026-04-20 - What is dead this week?le>
color=3D"#ffffff">
background-color: #004065; color: #FFF; text-decoration: none; font-size: 40px; font-weight: bold; font-family: Gadget; =20 border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border: 1px solid #000; padding: 10px; ">Perl Weekly =20
style=3D"border-bottom: 1px solid #ccc; padding-bottom: 8px; font-size: 18px;"> Issue #769 - 2026-04-20 - What is dead this week?
latest | https://perlweekly.com/archive">archive | edited by szabgab.com/">Gabor Szabo
=20 =20
=20
|
=20 Hi there,
=20 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 programmin= g languages.
=20 Last week finally I got home and because of the flight I had to pos= tpone the Testing in Perl event= so it will be held this Thursday. You are invited to ademy.code-maven.com/c/perl-testing-2026">watch the previous sessions (= for now free of charge) and join the next one.
=20 The Pe= rl Maven WhatsApp group 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. An= yway, you are invited to join us!
=20 Enjoy your week!
=20 Your editor: Gabor Szabo.
| mg/gabor_szabo.png" /> |
|
Announcementsiv> =20 | =20 =20 | =20 =20
Articles =20 | =20 | m/img/christian_hansen.png" title=3D"Christian Hansen" width=3D"80" /> | =20 | =20 =20 | =20 | m/img/dean_hamstead.jpg" title=3D"Dean Hamstead" width=3D"80" /> | =20 | =20 =20 | =20 =20 | =20 =20 > -pdl-part-two.html" style=3D" font-size: 18px; font-weight: bold; ">PDL in Rust -- Part Two =20 by mem.com/">PetaMem
nt-size: 16px"> "The current PDL implementation in pperl covers roughly 3,= 000 assertions end-to-end: about 1,400 on the Perl-facing connector side an= d about 1,600 on the engine side. As of this writing roughly 98% of the con= nector assertions match upstream PDL 2.103 exactly, and most of the remaini= ng 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." =20 =20 | =20 | =20 =20
Discussion =20 | =20 =20 | =20 | m/img/brian_d_foy.png" title=3D"brian d foy" width=3D"80" /> | =20 | =20 =20
Grants =20 | =20 =20 | =20 | m/img/paul_evans.png" title=3D"Paul Evans" width=3D"80" /> | =20 | =20 =20 | =20 =20
Perl =20 | =20 =20 | =20 =20
The Weekly Chall= enge =20 nge.org">The Weekly Challenge by Mohamma= d 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 o= ne champion at the end of the month from among all of the contributors duri= ng the month, thanks to the sponsor Marc Perry. =20 | =20 | m/img/mohammad_anwar.png" title=3D"Mohammad Sajid Anwar" width=3D"80" /> | =20 | =20 | m/img/mohammad_anwar.png" title=3D"Mohammad Sajid Anwar" width=3D"80" /> | =20 | =20 =20 > nge/week-369-1.html" style=3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 369: Valid Tag =20 by Abigail
le=3D"font-size: 16px"> This post provides multiple amazing examples of technical = versatility by providing a clean and direct solution written clearly in man= y different programming languages with tremendous flair, it shows great ele= gance in presenting the elegant and simple solution to the valid tag proble= m using the idiomatic language of each respective programming language. Abi= gail shows off expert level code writing skills by using the advanced chara= cter class arithmetic features present within Perl; these advanced ways of = manipulating strings show the efficiency of his coding style, while simulta= neously creating visually appealing code. =20 =20 | =20 | =20 =20 > nge/week-369-2.html" style=3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 369: Group Division =20 by Abigail
le=3D"font-size: 16px"> This post offers an extremely polished and versatile engin= eering design for the island program project. Abigail has shown advanced ex= pertise by using a 'chunk-and-fill' method over many different programming = languages (Perl, C, and less common languages such as sed, including detail= s on how string slices and fill-up strings can be done with the least amoun= t of impact. Furthermore, it highlights a creative use of string replicatio= n 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. =20 =20 | =20 | =20 =20 > =3D" font-size: 18px; font-weight: bold; ">Tag Division =20 by ings.com/">Arne Sommer
=3D"font-size: 16px"> In an idiomatic Raku implementation of the Group Division = problem, as shown pretty clearly here by Arne Sommer, the gather/take const= ruct is utilised nicely to collect the data clearly, and with the use of su= bstr-rw for in-place string manipulation and the replication operator (x) t= o add padding, the solution is both easily readable and aesthetically pleas= ing. =20 | m/img/arne-sommer.jpeg" title=3D"Arne Sommer" width=3D"80" /> | =20 | =20 =20 > ly_challenge_week_369.html" style=3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge: Week 369 =20 by Jaldhar H. Vyas =
By taking advantage of mathematical precision and the cris= pness of concise syntax through the use of "one liners", Jaldhar has develo= ped 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 functio= ns adds an additional level of efficiency and clarity to handling the group= ing logic.
=20 =20 | =20 | =20 =20 > 7/ch-369.html" style=3D" font-size: 18px; font-weight: bold; ">Divided Tags =20 by ommrey.de/">Jorg Sommrey
e=3D"font-size: 16px"> This article offers a detailed examination of the many asp= ects of the "Valid Tag" challenge and provides a well-defined "word" in ord= er to enhance the accuracy of processing. The body of this technical paper = describes Jorg's unique application of the Perl programming language's abil= ity to utilise global regular expressions (regex) to solve Task 2; and also= the excellent "Shape" verb from the J programming language that has provid= ed an efficient and generalised way to reshape and pad multi-dimensional ar= rays. =20 =20 | =20 | =20 =20 > html" style=3D" font-size: 18px; font-weight: bold; ">The Weekly Challenge 369 =20 by Lubos Kolouch =
In this post, we look at the approach both challenges in a= disciplined and structured manner. The focus is on having code that is eas= y to maintain and easy to read. We have examples showing clean, modular Per= l and Python code, and show examples of how the "Group Division" challenge = is solved using efficient use of list slicing and using generator expressio= ns to partition and pad strings in a method that's worthy of professional q= uality.
=20 =20 | =20 | =20 =20 > Challenge369.html" style=3D" font-size: 18px; font-weight: bold; ">string indexes =20 by .blogspot.com">Luca Ferrari
tyle=3D"font-size: 16px"> Luca Ferrari exhibits an incredible degree of technical ab= ility through his creation of five unique environments in which to accompli= sh 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 a= chieve the same complex logic for string padding and partitioning, as demon= strated in his application of The Group Division challenge, show how many d= ifferent programming languages can utilise very diverse methods to accompli= sh the same technically precise logic. =20 =20 | =20 | =20 =20 > =3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 369 =20 by hub.io/">W Luis Mochan
=3D"font-size: 16px"> 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 t= he 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 capturi= ng 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, resu= lting in code that is not only concise, but also very technically accurate = and well-balanced between the two principles. =20 | m/img/luis-mochan.jpeg" title=3D"W Luis Mochan" width=3D"80" /> | =20 | =20 =20 > ge-club/tree/muthm-369/challenge-369/matthias-muth#readme" style=3D" font-size: 18px; font-weight: bold; ">Good Tags and Good Chunks =20 by Matthias Muth =
Matthias Muth has written an impressive article on interna= tionalisation (I18N) relating to pragmatic problem solving while still main= taining a strong long-term support model through thoughtful design choices = such as those found within both the "Valid Tag" and "Group Division" soluti= ons 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 rule= s specified in the challenge itself (e.g., valid tag). Additionally, his so= lution for "Group Division" is equally amazing because he accomplished this= via a mathematical pad for the purpose of executing a clean single regex g= lobal match - or a single line of functional code - that could otherwise be= accomplished via several iterations of code.
=20 =20 | =20 | =20 =20 > font-size: 18px; font-weight: bold; ">Strings Will Tear Us Apart =20 by rl.org/users/packy_anderson/">Packy Anderson (<= a href=3D"https://metacpan.org/author/PACKY">PACKY) = span> 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 th= e Perl 'unpack' function with a per-function constructed template, demonstr= ating how you can creatively employ language idioms to efficiently and effe= ctively resolve a common programming issue and provide a solution for data = partitioning that uses little or minimal resources.
=20
| m/img/packy-anderson.jpeg" title=3D"Packy Anderson" width=3D"80" /> | =20 | =20 =20 > /369" style=3D" font-size: 18px; font-weight: bold; ">Fun with strings =20 by bellsmiths.force9.co.uk/">Peter Campbell Smith =
In his article, Peter presents a practical and polished ap= proach to developing an order of operations for the sanitisation of strings= . By organising the procedure so that lower case, regular expression charac= ter removal, and space & character combination are completed before the cre= ation of camelCase, the end product meets the requirements for both camel c= ase formatting as well as length requirements while still producing clean, = effective code.
=20 | m/img/peter-campbell-smith.png" title=3D"Peter Campbell Smith" width=3D"80"= /> | =20 | =20 =20 > wc369-1" style=3D" font-size: 18px; font-weight: bold; ">The Weekly Challenge - 369: Valid Tag =20 by Reinier Maliepaard =
In Reinier's method, a model for defensive programming has= been developed that features validation of input for real alphabetic value= s before processing. Also, he has taken a somewhat technical approach (tran= sforming 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.
=20 =20 | =20 | =20 =20 > wc369-2" style=3D" font-size: 18px; font-weight: bold; ">The Weekly Challenge - 369: Group Division =20 by Reinier Maliepaard =
Reinier has created a very good tutorial solution which sh= owcases how to use the "Perl 4-argument substr function" to extract and rem= ove data from a string using a while loop to do so iteratively and then usi= ng string replication for the final padding makes the code extremely readab= le and a great technical example of using efficient in-place usage of strin= gs.
=20 =20 | =20 | =20 =20 | =20 =20 | =20 | m/img/simon-green.png" title=3D"Simon Green" width=3D"80" /> | =20 | =20 =20
Weekly collectio= ns =20 | =20 =20 | =20 =20
Events =20 | =20 =20 | =20
|
 |
|
|
 |
 |
|
|
|
|