MESSAGE
| DATE | 2026-04-27 |
| FROM | Gabor Szabo
|
| SUBJECT | Subject: [Hangout - NYLXS] [Perlweekly] #770 - Yet Another Test Harness
|
From hangout-bounces-at-nylxs.com Tue Apr 28 16:48:52 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 9B3F7164106; Tue, 28 Apr 2026 16:48:50 -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 8993B164103; Tue, 28 Apr 2026 16:48:45 -0400 (EDT) Resent-From: Ruben Safir Resent-Date: Tue, 28 Apr 2026 16:48:45 -0400 Resent-Message-ID: <20260428204845.GA509-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.wfbtzbpn.outbound-mail.sendgrid.net (s.wfbtzbpn.outbound-mail.sendgrid.net [159.183.235.50]) (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 305E71640FB for ; Mon, 27 Apr 2026 04:06:28 -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=1777277187; bh=uqhTdZFMcZ6HtoMUVQ1QfA4995VesBeRWyCxquiIhd0=; b=a8zD9PbFLiyvxEnP6Ubn2k6K+d4HYQ0/WTNFN18tEagtsi26CTWIrJQ/F6/s4u9FFVg9 2sH71Uee3X+fuaIDbKUpw+9S9NED6FMyOrBLaXJa5eyHO/r6U7RMfq0a9dQN1ivEk4H3yi 5jaij02d203mstT2N9yzslLg2dtF/vECOXpAp3XusurjU7ikB10BAKGbyLheUocxRw8r7p dcT1YWWSBI60A39Bf+/tj+jlGO6K2B5W03dloyrjvGBvv9YyDVhIxozdCtKHAKbs1/s/Nc 3WSgxjMRF+d9M+MV7JGDZzc+s85+ci/kEKoDrLC27HoYr/Xf06ZmIsiVrQ5w+iLA== Received: by recvd-555c99f57f-ctk52 with SMTP id recvd-555c99f57f-ctk52-1-69EF1903-1 2026-04-27 08:06:27.009282368 +0000 UTC m=+468496.733618685 Received: from MjA0MzMyMDc (unknown) by geopod-ismtpd-7 (SG) with HTTP id VuLI93QHS7231LeNF2DhTA Mon, 27 Apr 2026 08:06:26.959 +0000 (UTC) Date: Mon, 27 Apr 2026 08:06:27 +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=2F6ApM=2FQpCIA7zpwGNdIu+etcl3wbxhgHeW9k?= =?us-ascii?Q?ZLUPVYw6p9HtsSNCIzt2pzf6XfX14YB1ffBGQa7?= =?us-ascii?Q?ELrIZnA3WxyZqnEmQu6dCPZb3YpEdTL1K5cYwDC?= =?us-ascii?Q?i5cvxz3ifB2pCqmvxEzL0Uah7ELzZvWsH=2FMhOew?= =?us-ascii?Q?Q=3D=3D?= To: ruben-at-mrbrklyn.com X-Entity-ID: u001.JvYq+PmxR+Jk4HAvLs9YyA== Subject: [Hangout - NYLXS] [Perlweekly] #770 - Yet Another Test Harness 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="===============1024478777==" Errors-To: hangout-bounces-at-nylxs.com Sender: "Hangout"
--===============1024478777== Content-Type: multipart/alternative; boundary=5879958dd419df7ce8009e3645afd23ab91453ab2ca2097240bff5622dfc
--5879958dd419df7ce8009e3645afd23ab91453ab2ca2097240bff5622dfc Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 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/770.html
Hi there,
I like to believe that I belong to the old school of testing i.e. Test::More ( https://metacpan.org/pod/Test::More ). That being said, every now and then I come across a magical test workflow. One of them is App::Yath ( https://metacpan.org/pod/App::Yath ). The biggest and pleasant surprise is that both were presented by none other than Chad Granum. 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 blog post ( https://theweeklychallenge.org/blog/testing-in-perl ) 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.
Speaking of testing, Herbert Breunung shared a blog post ( https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester-me.html ) explaining how Test::Builder helped him create his own test suite. This reminded me how I did exactly that in 2010 to create Test::Map::Tube ( https://metacpan.org/pod/Test::Map::Tube ) for my routing framework, Map::Tube ( https://metacpan.org/pod/Map::Tube ). It makes me feel quite old now!
Enjoy rest of the newsletter.
-- Your editor: Mohammad Sajid Anwar.
Announcements
=20 The London Perl and Raku Workshop 2026 https://www.londonperlworkshop.com/news#News-2026-04-27 =20 Just a heads up: The next LPW is planned to be in November 2026. --------------
=20 PPC Summer 2026 - Call for Participation! https://blogs.perl.org/users/oodler_577/2026/04/ppc-summer-2026---call-fo= r-participation.html =20 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Articles
=20 Who tests the tester? Me !!! https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester-me.ht= ml =20 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. --------------
=20 This week in PSC (222) | 2026-04-25 https://blogs.perl.org/users/psc/2026/04/this-week-in-psc-222-2026-04-25.= html =20 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. --------------
=20 Importance of Repositories in Public https://blogs.perl.org/users/mikko_koivunalho/2026/04/importance-of-repos= itories-in-public.html =20 In this blog post, Mikko argues that keeping project repositories publicl= y 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. --------------
=20 AI as a Chance - Opinion https://blogs.perl.org/users/petamem/2026/04/ai-as-a-chance.html =20 In this article PetaMem discussed how through AI we will have access to n= ew 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Discussion
=20 AI Contributions to CPAN: The Copyright Question https://blogs.perl.org/users/todd_rinaldo/2026/04/ai-contributions-to-cpa= n-the-copyright-question.html =20 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Web
=20 Use Your Powers Only for Good, Clark https://blog.dave.org.uk/2026/04/use-your-powers-only-for-good-clark.html =20 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. --------------
=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 - 371 https://theweeklychallenge.org/blog/perl-weekly-challenge-371 =20 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 FAQ ( https://theweeklychallenge.org/faq ). --------------
=20 RECAP - The Weekly Challenge - 370 https://theweeklychallenge.org/blog/recap-challenge-370 =20 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. --------------
=20 Perl Weekly Challenge 370: Popular Word https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-370-1.html =20 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. --------------
=20 Perl Weekly Challenge 370: Scramble String https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-370-2.html =20 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. --------------
=20 Popular Scramble https://raku-musings.com/popular-scramble.html =20 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. --------------
=20 PWC 370 Scramble On, Scramblin' Man https://dev.to/boblied/pwc-370-scramble-on-scramblin-man-5god =20 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. --------------
=20 Perl Weekly Challenge: Week 370 https://www.braincells.com/perl/2026/04/perl_weekly_challenge_week_370.ht= ml =20 In this article, there is a thorough comparison made between two language= s: 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. --------------
=20 Scrambled Bans https://github.sommrey.de/the-bears-den/2026/04/24/ch-370.html =20 J=C3=B6rg 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. --------------
=20 Perl Weekly Challenge 370 https://wlmb.github.io/2026/04/20/PWC370/ =20 W. Luis Moch=C3=A1n 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. --------------
=20 Scrambling Back and Forth https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-370/c= hallenge-370/matthias-muth#readme =20 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. --------------
=20 The scramble can not stop you / from becoming popu-ler=E2=80=A6 lar https://packy.dardan.com/b/nb =20 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". --------------
=20 Words and more words http://ccgi.campbellsmiths.force9.co.uk/challenge/370 =20 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. --------------
=20 The Weekly Challenge - 370: Popular Word https://reiniermaliepaard.nl/pwc/index.php?id=3Dpwc370-1 =20 Reinier solution includes a simple regular expression to remove punctuati= on 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. --------------
=20 The Weekly Challenge - 370: Scramble String https://reiniermaliepaard.nl/pwc/index.php?id=3Dpwc370-2 =20 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. --------------
=20 The Weekly Challenge #370 https://hatley-software.blogspot.com/2026/04/robbie-hatleys-solutions-in-= perl-for_24.html =20 Robbie's high-performance Perl solutions employ algorithmic efficiency an= d 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. --------------
=20 Popular Scramble https://blog.firedrake.org/archive/2026/04/The_Weekly_Challenge_370__Popu= lar_Scramble.html =20 Roger shown how to use a specialised programming tool like Counter in Rus= t 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. --------------
=20 Popular Scrambling https://dev.to/simongreennet/weekly-challenge-popular-scrambling-2bba =20 Simon demonstrates Task 1 by methodically normalising strings and countin= g 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Perl Tutorial 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 Perl Maven Tutorial ( https://perlmaven.com/perl-tutorial ) and are part of the Perl Maven eBook ( https://leanpub.com/perl-maven ). =20 Testing in Perl https://perlmaven.com/perl-testing/ =20 The 'slides' with all the examples that are used in the online course. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Rakudo
=20 2026.16 Selkie TUI Framework https://rakudoweekly.blog/2026/04/21/2026-16-selkie-tui-framework/ =20 =20 --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Training
=20 Testing in Perl https://academy.code-maven.com/c/perl-testing-2026 =20 While we are still recording the live sessions ( https://luma.com/perl-maven ) of the Testing in Perl 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. --------------
=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/dxcvii-19-great-cpan-modules-releas ed.html ). --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Events
=20 Perl Maven online: Testing in Perl - part 5 https://luma.com/perl-maven =20 April 30, 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
--5879958dd419df7ce8009e3645afd23ab91453ab2ca2097240bff5622dfc Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Mime-Version: 1.0
1.0, user-scalable=3Dyes"> Perl Weekly Issue #770 - 2026-04-27 - Yet Another Test Harnesstle>
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 #770 - 2026-04-27 - Yet Another Test Harness
latest | https://perlweekly.com/archive">archive | edited by manwar.org/">Mohammad Sajid Anwar
=20 =20
=20
|
=20 Hi there,
=20 I like to believe that I belong to the old school of testing i.e. <= a href=3D"https://metacpan.org/pod/Test::More">Test::More. That being s= aid, every now and then I come across a magical test workflow. One of them = is App::Yath. The bigges= t and pleasant surprise is that both were presented by none other than ong>Chad Granum. 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 <= a href=3D"https://theweeklychallenge.org/blog/testing-in-perl">blog post> as a reminder to myself while working on this editorial. I can refer to i= t next time I am changing existing code or adding new code.
=20 Speaking of testing, Herbert Breunung shared a href=3D"https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester= -me.html">blog post explaining how Test::Builder helpe= d him create his own test suite. This reminded me how I did exactly that in= 2010 to create Map::Tube">Test::Map::Tube for my routing framework, /metacpan.org/pod/Map::Tube">Map::Tube. It makes me feel quite old now!
=20 Enjoy rest of the newsletter.
=20 Your editor: Mohammad Sajid Anwar.
| mg/mohammad_anwar.png" /> |
|
Announcementsiv> =20 | =20 =20 | =20 | m/img/brett_estrade.png" title=3D"Brett Estrade" width=3D"80" /> | =20 | =20 =20
Articles =20 | =20 =20 | =20 =20 | =20 | m/img/mikko-koivunalho.jpeg" title=3D"Mikko Koivunalho" width=3D"80" /> | =20 | =20 =20 > s-a-chance.html" style=3D" font-size: 18px; font-weight: bold; ">AI as a Chance - Opinion =20 by mem.com/">PetaMem
nt-size: 16px"> In this article PetaMem discussed how through AI we will h= ave access to new ways to enhance our creative processes (as opposed to rep= lacing them), through developing a partnership with AI; allowing developers= and creators alike use the technology of AI to automate repetitive process= es and create opportunities for problems to be solved and new ideas develop= ed through creative innovation. =20 =20 | =20 | =20 =20
Discussion =20 | =20 =20 | =20 =20
Web =20 | =20 | m/img/dave_cross.png" title=3D"Dave Cross" width=3D"80" /> | =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 | =20 =20 > nge/week-370-2.html" style=3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 370: Scramble String =20 by Abigail
le=3D"font-size: 16px"> Abigail used a clever recursive method to take on the chal= lenge of the "Scramble String" problem. The use of clear base cases and log= ic 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 th= at can be used to solve other complex problems involving string transformat= ions. =20 =20 | =20 | =20 =20 > tyle=3D" font-size: 18px; font-weight: bold; ">Popular Scramble =20 by ings.com/">Arne Sommer
=3D"font-size: 16px"> Arne's experience in comparing Raku's expressive power vs.= Perl with respect to the solutions of these two challenges are at the hear= t of this review. He also demonstrates how to use Raku's built-in Bag and A= ny 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 fu= nctional programming patterns effectively. =20 | m/img/arne-sommer.jpeg" title=3D"Arne Sommer" width=3D"80" /> | =20 | =20 | m/img/bob-lied.png" title=3D"Bob Lied" width=3D"80" /> | =20 | =20 =20 | =20 =20 | =20 =20 > =3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 370 =20 by hub.io/">W Luis Mochan
=3D"font-size: 16px"> W. Luis Moch=C3=A1n offers a mathematically rigorous and e= legant 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 freque= ncy count. His review is particularly positive about the clarity and effici= ency of using a single hash to filter out banned words while identifying th= e maximum frequency in one pass. For Task 2, he implements a recursive solu= tion and highlights the technical necessity of caching results to avoid the= exponential growth of possibilities in longer strings. =20 | m/img/luis-mochan.jpeg" title=3D"W Luis Mochan" width=3D"80" /> | =20 | =20 =20 > ge-club/tree/muthm-370/challenge-370/matthias-muth#readme" style=3D" font-size: 18px; font-weight: bold; ">Scrambling Back and Forth =20 by Matthias Muth =
Matthias's submission for Task 1, he has used a concise an= d efficient one-liner with List::UtilsBy::max_by to count how many times wo= rds 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, Matt= hias did not limit himself to performing a simple recursive search as in pr= evious weeks; however, he developed a Reverse Scramble algorithm, which is = performing this task as a sequence of sorting in which strings become index= es of streaks representing their sorted order to allow for efficient verifi= cation of scrambling operations performed.
=20 =20 | =20 | =20 =20 > font-size: 18px; font-weight: bold; ">The scramble can not stop you / from becoming popu-ler= =E2=80=A6 lar =20 by rl.org/users/packy_anderson/">Packy Anderson (<= a href=3D"https://metacpan.org/author/PACKY">PACKY) = span> Packy's polyglot Challenge 370 features solid code samples= in Perl, Raku, Python, and Elixir that showcase how to solve the problem m= ultiple ways using different programming languages. He shows how using Elix= ir'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, w= ith code examples in each of the four languages, while adapting to the spec= ific syntax and idioms of each language, in his example "Scramble String".
=20
| m/img/packy-anderson.jpeg" title=3D"Packy Anderson" width=3D"80" /> | =20 | =20 | m/img/peter-campbell-smith.png" title=3D"Peter Campbell Smith" width=3D"80"= /> | =20 | =20 =20 | =20 =20 | =20 =20 | =20 =20 | =20 | m/img/simon-green.png" title=3D"Simon Green" width=3D"80" /> | =20 | =20 =20
| =20 | m/img/gabor_szabo.png" title=3D"Gabor Szabo" width=3D"80" /> | =20 | =20 =20
Rakudo =20 | =20 | m/img/elizabeth_mattijsen.png" title=3D"Elizabeth Mattijsen" width=3D"80" /= > | =20 | =20 =20
Training =20 | =20 | m/img/gabor_szabo.png" title=3D"Gabor Szabo" width=3D"80" /> | =20 | =20 =20
Weekly collectio= ns =20 | =20 =20 | =20 =20
Events =20 | =20 =20 | =20 =20 | =20 =20 > font-size: 18px; font-weight: bold; ">The Perl and R--===============1024478777== Content-Type: multipart/alternative; boundary=5879958dd419df7ce8009e3645afd23ab91453ab2ca2097240bff5622dfc
--5879958dd419df7ce8009e3645afd23ab91453ab2ca2097240bff5622dfc Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 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/770.html
Hi there,
I like to believe that I belong to the old school of testing i.e. Test::More ( https://metacpan.org/pod/Test::More ). That being said, every now and then I come across a magical test workflow. One of them is App::Yath ( https://metacpan.org/pod/App::Yath ). The biggest and pleasant surprise is that both were presented by none other than Chad Granum. 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 blog post ( https://theweeklychallenge.org/blog/testing-in-perl ) 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.
Speaking of testing, Herbert Breunung shared a blog post ( https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester-me.html ) explaining how Test::Builder helped him create his own test suite. This reminded me how I did exactly that in 2010 to create Test::Map::Tube ( https://metacpan.org/pod/Test::Map::Tube ) for my routing framework, Map::Tube ( https://metacpan.org/pod/Map::Tube ). It makes me feel quite old now!
Enjoy rest of the newsletter.
-- Your editor: Mohammad Sajid Anwar.
Announcements
=20 The London Perl and Raku Workshop 2026 https://www.londonperlworkshop.com/news#News-2026-04-27 =20 Just a heads up: The next LPW is planned to be in November 2026. --------------
=20 PPC Summer 2026 - Call for Participation! https://blogs.perl.org/users/oodler_577/2026/04/ppc-summer-2026---call-fo= r-participation.html =20 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Articles
=20 Who tests the tester? Me !!! https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester-me.ht= ml =20 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. --------------
=20 This week in PSC (222) | 2026-04-25 https://blogs.perl.org/users/psc/2026/04/this-week-in-psc-222-2026-04-25.= html =20 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. --------------
=20 Importance of Repositories in Public https://blogs.perl.org/users/mikko_koivunalho/2026/04/importance-of-repos= itories-in-public.html =20 In this blog post, Mikko argues that keeping project repositories publicl= y 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. --------------
=20 AI as a Chance - Opinion https://blogs.perl.org/users/petamem/2026/04/ai-as-a-chance.html =20 In this article PetaMem discussed how through AI we will have access to n= ew 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Discussion
=20 AI Contributions to CPAN: The Copyright Question https://blogs.perl.org/users/todd_rinaldo/2026/04/ai-contributions-to-cpa= n-the-copyright-question.html =20 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Web
=20 Use Your Powers Only for Good, Clark https://blog.dave.org.uk/2026/04/use-your-powers-only-for-good-clark.html =20 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. --------------
=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 - 371 https://theweeklychallenge.org/blog/perl-weekly-challenge-371 =20 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 FAQ ( https://theweeklychallenge.org/faq ). --------------
=20 RECAP - The Weekly Challenge - 370 https://theweeklychallenge.org/blog/recap-challenge-370 =20 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. --------------
=20 Perl Weekly Challenge 370: Popular Word https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-370-1.html =20 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. --------------
=20 Perl Weekly Challenge 370: Scramble String https://abigail.github.io/HTML/Perl-Weekly-Challenge/week-370-2.html =20 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. --------------
=20 Popular Scramble https://raku-musings.com/popular-scramble.html =20 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. --------------
=20 PWC 370 Scramble On, Scramblin' Man https://dev.to/boblied/pwc-370-scramble-on-scramblin-man-5god =20 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. --------------
=20 Perl Weekly Challenge: Week 370 https://www.braincells.com/perl/2026/04/perl_weekly_challenge_week_370.ht= ml =20 In this article, there is a thorough comparison made between two language= s: 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. --------------
=20 Scrambled Bans https://github.sommrey.de/the-bears-den/2026/04/24/ch-370.html =20 J=C3=B6rg 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. --------------
=20 Perl Weekly Challenge 370 https://wlmb.github.io/2026/04/20/PWC370/ =20 W. Luis Moch=C3=A1n 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. --------------
=20 Scrambling Back and Forth https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-370/c= hallenge-370/matthias-muth#readme =20 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. --------------
=20 The scramble can not stop you / from becoming popu-ler=E2=80=A6 lar https://packy.dardan.com/b/nb =20 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". --------------
=20 Words and more words http://ccgi.campbellsmiths.force9.co.uk/challenge/370 =20 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. --------------
=20 The Weekly Challenge - 370: Popular Word https://reiniermaliepaard.nl/pwc/index.php?id=3Dpwc370-1 =20 Reinier solution includes a simple regular expression to remove punctuati= on 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. --------------
=20 The Weekly Challenge - 370: Scramble String https://reiniermaliepaard.nl/pwc/index.php?id=3Dpwc370-2 =20 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. --------------
=20 The Weekly Challenge #370 https://hatley-software.blogspot.com/2026/04/robbie-hatleys-solutions-in-= perl-for_24.html =20 Robbie's high-performance Perl solutions employ algorithmic efficiency an= d 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. --------------
=20 Popular Scramble https://blog.firedrake.org/archive/2026/04/The_Weekly_Challenge_370__Popu= lar_Scramble.html =20 Roger shown how to use a specialised programming tool like Counter in Rus= t 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. --------------
=20 Popular Scrambling https://dev.to/simongreennet/weekly-challenge-popular-scrambling-2bba =20 Simon demonstrates Task 1 by methodically normalising strings and countin= g 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. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Perl Tutorial 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 Perl Maven Tutorial ( https://perlmaven.com/perl-tutorial ) and are part of the Perl Maven eBook ( https://leanpub.com/perl-maven ). =20 Testing in Perl https://perlmaven.com/perl-testing/ =20 The 'slides' with all the examples that are used in the online course. --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Rakudo
=20 2026.16 Selkie TUI Framework https://rakudoweekly.blog/2026/04/21/2026-16-selkie-tui-framework/ =20 =20 --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Training
=20 Testing in Perl https://academy.code-maven.com/c/perl-testing-2026 =20 While we are still recording the live sessions ( https://luma.com/perl-maven ) of the Testing in Perl 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. --------------
=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/dxcvii-19-great-cpan-modules-releas ed.html ). --------------
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Events
=20 Perl Maven online: Testing in Perl - part 5 https://luma.com/perl-maven =20 April 30, 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
--5879958dd419df7ce8009e3645afd23ab91453ab2ca2097240bff5622dfc Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 Mime-Version: 1.0
1.0, user-scalable=3Dyes"> Perl Weekly Issue #770 - 2026-04-27 - Yet Another Test Harnesstle>
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 #770 - 2026-04-27 - Yet Another Test Harness
latest | https://perlweekly.com/archive">archive | edited by manwar.org/">Mohammad Sajid Anwar
=20 =20
=20
|
=20 Hi there,
=20 I like to believe that I belong to the old school of testing i.e. <= a href=3D"https://metacpan.org/pod/Test::More">Test::More. That being s= aid, every now and then I come across a magical test workflow. One of them = is App::Yath. The bigges= t and pleasant surprise is that both were presented by none other than ong>Chad Granum. 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 <= a href=3D"https://theweeklychallenge.org/blog/testing-in-perl">blog post> as a reminder to myself while working on this editorial. I can refer to i= t next time I am changing existing code or adding new code.
=20 Speaking of testing, Herbert Breunung shared a href=3D"https://blogs.perl.org/users/lichtkind/2026/04/who-tests-the-tester= -me.html">blog post explaining how Test::Builder helpe= d him create his own test suite. This reminded me how I did exactly that in= 2010 to create Map::Tube">Test::Map::Tube for my routing framework, /metacpan.org/pod/Map::Tube">Map::Tube. It makes me feel quite old now!
=20 Enjoy rest of the newsletter.
=20 Your editor: Mohammad Sajid Anwar.
| mg/mohammad_anwar.png" /> |
|
Announcementsiv> =20 | =20 =20 | =20 | m/img/brett_estrade.png" title=3D"Brett Estrade" width=3D"80" /> | =20 | =20 =20
Articles =20 | =20 =20 | =20 =20 | =20 | m/img/mikko-koivunalho.jpeg" title=3D"Mikko Koivunalho" width=3D"80" /> | =20 | =20 =20 > s-a-chance.html" style=3D" font-size: 18px; font-weight: bold; ">AI as a Chance - Opinion =20 by mem.com/">PetaMem
nt-size: 16px"> In this article PetaMem discussed how through AI we will h= ave access to new ways to enhance our creative processes (as opposed to rep= lacing them), through developing a partnership with AI; allowing developers= and creators alike use the technology of AI to automate repetitive process= es and create opportunities for problems to be solved and new ideas develop= ed through creative innovation. =20 =20 | =20 | =20 =20
Discussion =20 | =20 =20 | =20 =20
Web =20 | =20 | m/img/dave_cross.png" title=3D"Dave Cross" width=3D"80" /> | =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 | =20 =20 > nge/week-370-2.html" style=3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 370: Scramble String =20 by Abigail
le=3D"font-size: 16px"> Abigail used a clever recursive method to take on the chal= lenge of the "Scramble String" problem. The use of clear base cases and log= ic 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 th= at can be used to solve other complex problems involving string transformat= ions. =20 =20 | =20 | =20 =20 > tyle=3D" font-size: 18px; font-weight: bold; ">Popular Scramble =20 by ings.com/">Arne Sommer
=3D"font-size: 16px"> Arne's experience in comparing Raku's expressive power vs.= Perl with respect to the solutions of these two challenges are at the hear= t of this review. He also demonstrates how to use Raku's built-in Bag and A= ny 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 fu= nctional programming patterns effectively. =20 | m/img/arne-sommer.jpeg" title=3D"Arne Sommer" width=3D"80" /> | =20 | =20 | m/img/bob-lied.png" title=3D"Bob Lied" width=3D"80" /> | =20 | =20 =20 | =20 =20 | =20 =20 > =3D" font-size: 18px; font-weight: bold; ">Perl Weekly Challenge 370 =20 by hub.io/">W Luis Mochan
=3D"font-size: 16px"> W. Luis Moch=C3=A1n offers a mathematically rigorous and e= legant 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 freque= ncy count. His review is particularly positive about the clarity and effici= ency of using a single hash to filter out banned words while identifying th= e maximum frequency in one pass. For Task 2, he implements a recursive solu= tion and highlights the technical necessity of caching results to avoid the= exponential growth of possibilities in longer strings. =20 | m/img/luis-mochan.jpeg" title=3D"W Luis Mochan" width=3D"80" /> | =20 | =20 =20 > ge-club/tree/muthm-370/challenge-370/matthias-muth#readme" style=3D" font-size: 18px; font-weight: bold; ">Scrambling Back and Forth =20 by Matthias Muth =
Matthias's submission for Task 1, he has used a concise an= d efficient one-liner with List::UtilsBy::max_by to count how many times wo= rds 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, Matt= hias did not limit himself to performing a simple recursive search as in pr= evious weeks; however, he developed a Reverse Scramble algorithm, which is = performing this task as a sequence of sorting in which strings become index= es of streaks representing their sorted order to allow for efficient verifi= cation of scrambling operations performed.
=20 =20 | =20 | =20 =20 > font-size: 18px; font-weight: bold; ">The scramble can not stop you / from becoming popu-ler= =E2=80=A6 lar =20 by rl.org/users/packy_anderson/">Packy Anderson (<= a href=3D"https://metacpan.org/author/PACKY">PACKY) = span> Packy's polyglot Challenge 370 features solid code samples= in Perl, Raku, Python, and Elixir that showcase how to solve the problem m= ultiple ways using different programming languages. He shows how using Elix= ir'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, w= ith code examples in each of the four languages, while adapting to the spec= ific syntax and idioms of each language, in his example "Scramble String".
=20
| m/img/packy-anderson.jpeg" title=3D"Packy Anderson" width=3D"80" /> | =20 | =20 | m/img/peter-campbell-smith.png" title=3D"Peter Campbell Smith" width=3D"80"= /> | =20 | =20 =20 | =20 =20 | =20 =20 | =20 =20 | =20 | m/img/simon-green.png" title=3D"Simon Green" width=3D"80" /> | =20 | =20 =20
| =20 | m/img/gabor_szabo.png" title=3D"Gabor Szabo" width=3D"80" /> | =20 | =20 =20
Rakudo =20 | =20 | m/img/elizabeth_mattijsen.png" title=3D"Elizabeth Mattijsen" width=3D"80" /= > | =20 | =20 =20
Training =20 | =20 | m/img/gabor_szabo.png" title=3D"Gabor Szabo" width=3D"80" /> | =20 | =20 =20
Weekly collectio= ns =20 | =20 =20 | =20 =20
Events =20 | =20 =20 | =20 =20 | =20
|
 |
|
|
 |
 |
|
|
|
|