Tue Feb 17 08:09:19 2026
EVENTS
 FREE
SOFTWARE
INSTITUTE

POLITICS
JOBS
MEMBERS'
CORNER

MAILING
LIST

NYLXS Mailing Lists and Archives
NYLXS Members have a lot to say and share but we don't keep many secrets. Join the Hangout Mailing List and say your peice.

DATE 2025-08-01

HANGOUT

2026-02-17 | 2026-01-17 | 2025-12-17 | 2025-11-17 | 2025-10-17 | 2025-09-17 | 2025-08-17 | 2025-07-17 | 2025-06-17 | 2025-05-17 | 2025-04-17 | 2025-03-17 | 2025-02-17 | 2025-01-17 | 2024-12-17 | 2024-11-17 | 2024-10-17 | 2024-09-17 | 2024-08-17 | 2024-07-17 | 2024-06-17 | 2024-05-17 | 2024-04-17 | 2024-03-17 | 2024-02-17 | 2024-01-17 | 2023-12-17 | 2023-11-17 | 2023-10-17 | 2023-09-17 | 2023-08-17 | 2023-07-17 | 2023-06-17 | 2023-05-17 | 2023-04-17 | 2023-03-17 | 2023-02-17 | 2023-01-17 | 2022-12-17 | 2022-11-17 | 2022-10-17 | 2022-09-17 | 2022-08-17 | 2022-07-17 | 2022-06-17 | 2022-05-17 | 2022-04-17 | 2022-03-17 | 2022-02-17 | 2022-01-17 | 2021-12-17 | 2021-11-17 | 2021-10-17 | 2021-09-17 | 2021-08-17 | 2021-07-17 | 2021-06-17 | 2021-05-17 | 2021-04-17 | 2021-03-17 | 2021-02-17 | 2021-01-17 | 2020-12-17 | 2020-11-17 | 2020-10-17 | 2020-09-17 | 2020-08-17 | 2020-07-17 | 2020-06-17 | 2020-05-17 | 2020-04-17 | 2020-03-17 | 2020-02-17 | 2020-01-17 | 2019-12-17 | 2019-11-17 | 2019-10-17 | 2019-09-17 | 2019-08-17 | 2019-07-17 | 2019-06-17 | 2019-05-17 | 2019-04-17 | 2019-03-17 | 2019-02-17 | 2019-01-17 | 2018-12-17 | 2018-11-17 | 2018-10-17 | 2018-09-17 | 2018-08-17 | 2018-07-17 | 2018-06-17 | 2018-05-17 | 2018-04-17 | 2018-03-17 | 2018-02-17 | 2018-01-17 | 2017-12-17 | 2017-11-17 | 2017-10-17 | 2017-09-17 | 2017-08-17 | 2017-07-17 | 2017-06-17 | 2017-05-17 | 2017-04-17 | 2017-03-17 | 2017-02-17 | 2017-01-17 | 2016-12-17 | 2016-11-17 | 2016-10-17 | 2016-09-17 | 2016-08-17 | 2016-07-17 | 2016-06-17 | 2016-05-17 | 2016-04-17 | 2016-03-17 | 2016-02-17 | 2016-01-17 | 2015-12-17 | 2015-11-17 | 2015-10-17 | 2015-09-17 | 2015-08-17 | 2015-07-17 | 2015-06-17 | 2015-05-17 | 2015-04-17 | 2015-03-17 | 2015-02-17 | 2015-01-17 | 2014-12-17 | 2014-11-17 | 2014-10-17 | 2014-09-17 | 2014-08-17 | 2014-07-17 | 2014-06-17 | 2014-05-17 | 2014-04-17 | 2014-03-17 | 2014-02-17 | 2014-01-17 | 2013-12-17 | 2013-11-17 | 2013-10-17 | 2013-09-17 | 2013-08-17 | 2013-07-17 | 2013-06-17 | 2013-05-17 | 2013-04-17 | 2013-03-17 | 2013-02-17 | 2013-01-17 | 2012-12-17 | 2012-11-17 | 2012-10-17 | 2012-09-17 | 2012-08-17 | 2012-07-17 | 2012-06-17 | 2012-05-17 | 2012-04-17 | 2012-03-17 | 2012-02-17 | 2012-01-17 | 2011-12-17 | 2011-11-17 | 2011-10-17 | 2011-09-17 | 2011-08-17 | 2011-07-17 | 2011-06-17 | 2011-05-17 | 2011-04-17 | 2011-03-17 | 2011-02-17 | 2011-01-17 | 2010-12-17 | 2010-11-17 | 2010-10-17 | 2010-09-17 | 2010-08-17 | 2010-07-17 | 2010-06-17 | 2010-05-17 | 2010-04-17 | 2010-03-17 | 2010-02-17 | 2010-01-17 | 2009-12-17 | 2009-11-17 | 2009-10-17 | 2009-09-17 | 2009-08-17 | 2009-07-17 | 2009-06-17 | 2009-05-17 | 2009-04-17 | 2009-03-17 | 2009-02-17 | 2009-01-17 | 2008-12-17 | 2008-11-17 | 2008-10-17 | 2008-09-17 | 2008-08-17 | 2008-07-17 | 2008-06-17 | 2008-05-17 | 2008-04-17 | 2008-03-17 | 2008-02-17 | 2008-01-17 | 2007-12-17 | 2007-11-17 | 2007-10-17 | 2007-09-17 | 2007-08-17 | 2007-07-17 | 2007-06-17 | 2007-05-17 | 2007-04-17 | 2007-03-17 | 2007-02-17 | 2007-01-17 | 2006-12-17 | 2006-11-17 | 2006-10-17 | 2006-09-17 | 2006-08-17 | 2006-07-17 | 2006-06-17 | 2006-05-17 | 2006-04-17 | 2006-03-17 | 2006-02-17 | 2006-01-17 | 2005-12-17 | 2005-11-17 | 2005-10-17 | 2005-09-17 | 2005-08-17 | 2005-07-17 | 2005-06-17 | 2005-05-17 | 2005-04-17 | 2005-03-17 | 2005-02-17 | 2005-01-17 | 2004-12-17 | 2004-11-17 | 2004-10-17 | 2004-09-17 | 2004-08-17 | 2004-07-17 | 2004-06-17 | 2004-05-17 | 2004-04-17 | 2004-03-17 | 2004-02-17 | 2004-01-17 | 2003-12-17 | 2003-11-17 | 2003-10-17 | 2003-09-17 | 2003-08-17 | 2003-07-17 | 2003-06-17 | 2003-05-17 | 2003-04-17 | 2003-03-17 | 2003-02-17 | 2003-01-17 | 2002-12-17 | 2002-11-17 | 2002-10-17 | 2002-09-17 | 2002-08-17 | 2002-07-17 | 2002-06-17 | 2002-05-17 | 2002-04-17 | 2002-03-17 | 2002-02-17 | 2002-01-17 | 2001-12-17 | 2001-11-17 | 2001-10-17 | 2001-09-17 | 2001-08-17 | 2001-07-17 | 2001-06-17 | 2001-05-17 | 2001-04-17 | 2001-03-17 | 2001-02-17 | 2001-01-17 | 2000-12-17 | 2000-11-17 | 2000-10-17 | 2000-09-17 | 2000-08-17 | 2000-07-17 | 2000-06-17 | 2000-05-17 | 2000-04-17 | 2000-03-17 | 2000-02-17 | 2000-01-17 | 1999-12-17

Key: Value:

Key: Value:

MESSAGE
DATE 2025-08-04
FROM Gabor Szabo
SUBJECT Subject: [Hangout - NYLXS] [Perlweekly] #732 - MetaCPAN Success Story
From hangout-bounces-at-nylxs.com Mon Aug 4 14:26:20 2025
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 5CB4A1640FC;
Mon, 4 Aug 2025 14:26:10 -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 369FB1640F6; Mon, 4 Aug 2025 14:26:04 -0400 (EDT)
Resent-From: Ruben Safir
Resent-Date: Mon, 4 Aug 2025 14:26:04 -0400
Resent-Message-ID: <20250804182604.GA9467-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.wrqvtzvf.outbound-mail.sendgrid.net
(s.wrqvtzvf.outbound-mail.sendgrid.net [149.72.126.143])
(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 573D61640F3
for ; Mon, 4 Aug 2025 01:51:07 -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; bh=cmBF12dcKzX2SdQDTP3p0RFEVieeHfQxXVGKEctN2g8=;
b=FDZAsYSnbjg8hhERU9WyxPplXre+LdMB0D8XKV3YbTAm5gKgZ5dEroBRq38HYKyaDezp
FPDCrRW8E+HzdoAEeTMT+eCSXYICHIvaVGi6yHR6lZSocJCpgUIkceVw27iH82gpM7XVSp
4BFyjcHnznDm5W+ZaD5yvlGFKll9thpnKt/gKlD7DKrQMywM2a/ww7ZJeQmFMjmjTX/IqH
0SdW3i/YTr17KV0Bz7e6dCUhQs/++Ko3dJD4wU032Z9YeL79n628fSc8L1dllp51fOAOF9
jf/6cvmDxdSvul3qqAbeNStDP2TMsDVcdw3xAtrkMW/hXXJA/iKlnJnoy14pKfAg==
Received: by recvd-7748d67658-xmp7t with SMTP id
recvd-7748d67658-xmp7t-1-68904A4A-A
2025-08-04 05:51:06.217635379 +0000 UTC m=+5231180.668350728
Received: from MjA0MzMyMDc (unknown) by geopod-ismtpd-4 (SG) with HTTP
id L3Rqnr8aQciXOqHw4-AJCQ Mon, 04 Aug 2025 05:51:06.134 +0000 (UTC)
Date: Mon, 04 Aug 2025 05:51:06 +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=2F6ApIrXdwruQNWHokCElL1X0JzsdWZTGcQTS?=
=?us-ascii?Q?TfGehtNqh3ZnAo4dKwJSoVsE5mc=2FW3HJHJgNQwp?=
=?us-ascii?Q?yTlw3W7Vx3trXrwKQL01E7rmUvZJVM7cyFmtZc6?=
=?us-ascii?Q?HF5=2FOGWaJ8wn1dlSF1PwZ27VNN7xYoph5=2FD6alX?=
=?us-ascii?Q?A=3D=3D?=
To: ruben-at-mrbrklyn.com
X-Entity-ID: u001.JvYq+PmxR+Jk4HAvLs9YyA==
Subject: [Hangout - NYLXS] [Perlweekly] #732 - MetaCPAN Success Story
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="===============1008211619=="
Errors-To: hangout-bounces-at-nylxs.com
Sender: "Hangout"

--===============1008211619==
Content-Type: multipart/alternative; boundary=7aaf27e976d8e132355174d2f434ba659df98d45a18d82029a1334eb9238

--7aaf27e976d8e132355174d2f434ba659df98d45a18d82029a1334eb9238
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/732.html



Hi there,

MetaCPAN's recent battle against mounting traffic abuse
stands as a powerful testament to the resilience and ingenuity of
open=E2=80=91source infrastructure teams. After enduring recurring
503 outages that jeopardized service for
Perl hackers worldwide, the MetaCPAN team
embarked on a disciplined, data=E2=80=91driven counterattack. What began wi=
th
rudimentary logs, robots.txt tweaks and
manual IP bans evolved into a robust partnership with
Datadog ( https://www.datadoghq.com ) and Fastly ( https://www.fastly.com
), enabling real=E2=80=91time visibility and proactive defense. With the de=
ployment
of sophisticated rate=E2=80=91limiting rules,
user=E2=80=91agent filtering, next=E2=80=91generation ong>WAF
protections and a dynamic challenge system, MetaCPAN has
successfully blocked some 80=E2=80=AFpercent of malicious
traffic=E2=80=94including AI scrapers=E2=80=94while delive=
ring a steady,
reliable experience to legitimate users. This journey highlights how
transparency, layered defense and smart automation can transform a crisis
into an opportunity for stronger, more sustainable service.

Mark Gardner=E2=80=99s return to technical blogging (
https://phoenixtrap.com ) marks a welcome revival of one of
Perl=E2=80=99s clearest and most thoughtful voices.

Robert Acock created a mobile app, Heaven Vs
Hell
, written using react native and backend API's in
Mojolicious. You can find it in Google Play (
https://play.google.com/store/apps/details?id=3Dio.heavenvshell ) and App
Store ( https://apps.apple.com/us/app/heaven-vs-hell/id6748543465 ).

Enjoy rest of the newsletter.

--
Your editor: Mohammad Sajid Anwar.


Announcements

=20
Sydney August Meeting!
https://blogs.perl.org/users/dean/2025/07/sydney-august-meeting.html
=20
For all Perl Mongers in and around Sydney, please do join the next meetup=
.
--------------

=20
Science Perl Journal DOIs are now live! Update on videos and next Issue o=
f the SPJ
https://blogs.perl.org/users/oodler_577/2025/07/science-perl-journal-dois=
-are-now-live-update-on-videos-and-next-issue-of-the-spj.html
=20
For all Science Perl Journal fan, please find list of permanent DOIs.
--------------

=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Articles

=20
MetaCPAN's Traffic Crisis: An Eventual Success Story
https://www.perl.com/article/metacpan-traffic-crisis
=20
MetaCPAN.org, the essential search engine for
Perl=E2=80=99s CPAN repository has faced months of sever=
e
traffic issues that brought the service to its knees with frequent
503 errors.
--------------

=20
Heaven Vs Hell
https://apps.apple.com/us/app/heaven-vs-hell/id6748543465
=20
The mobile app written using react native and backend API's using
Mojolicious.
--------------

=20
Lightweight object-oriented Perl scripts: From modulinos to moodulinos
https://phoenixtrap.com/2025/08/03/moodulinos/
=20
In Moodulinos, Mark Gardner offers a concise yet instructive journey
through modern, lightweight Perl scripting by combining the time-tested
modulino pattern with the expressive power of Moo.
--------------

=20
Re: Wired on Perl and the virtue of humility
https://phoenixtrap.com/2025/07/28/re-wired-on-perl-and-the-virtue-of-hum=
ility
=20
In his thoughtful response to Samuel Arbesman=E2=80=99s Wired piece, Mark=
Gardner
reframes the conversation around Perl.
--------------

=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Discussion

=20
Is it still worth adding installation instructions to a distribution?
https://blogs.perl.org/users/robert_rothenberg/2025/07/is-it-still-worth-=
adding-installation-instructions-to-a-distribution.html
=20
This post is a thoughtful prompt for Perl developers maintaining CPAN
modules.
--------------

=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 Lance Wicks.
=20
The Weekly Challenge - 333
https://theweeklychallenge.org/blog/perl-weekly-challenge-333
=20
Welcome to a new week with a couple of fun tasks "Straight Line" and
"Duplicate Zeros". 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 - 332
https://theweeklychallenge.org/blog/recap-challenge-332
=20
Enjoy a quick recap of last week's contributions by Team PWC dealing with
the "Binary Date" and "Odd Letters" tasks in Perl and Raku. You will find
plenty of solutions to keep you busy.
--------------

=20
TWC332
https://deadmarshal.blogspot.com/2025/07/twc332.html
=20
Both solutions are compact and idiomatic Perl, ideal for scripting and
competitive programming.
--------------

=20
An Odd Date
https://raku-musings.com/odd-date.html
=20
A technically sound and idiomatic Raku solution with solid input handling=
,
effective use of Raku=E2=80=99s expressive syntax, and clean logic.
--------------

=20
Odd last date letters, binary word list buddy
https://dev.to/boblied/pwc-331-332-odd-last-date-letters-binary-word-list=
-buddy-ib6
=20
The solutions are terse, elegant, and showcase modern Perl idioms. They
shine in clarity for those familiar with Perl 5.42+, especially with
sprintf and all.
--------------

=20
Perl Weekly Challenge: Week 332
https://www.braincells.com/perl/2025/07/perl_weekly_challenge_week_332.ht=
ml
=20
The Raku version shows off the expressive power of high-level language
features (like Bag and junctions) in a tight one-liner. The Perl version
is longer but more transparent to a general audience, especially Perl
learners.
--------------

=20
Binary Regularities
https://github.sommrey.de/the-bears-den/2025/08/01/ch-332.html
=20
A technically impressive post. Task 1 is robust and production-ready. Tas=
k
2 is a brilliant regex stunt =E2=80=94 best appreciated as a learning art=
ifact.
--------------

=20
quick and easy
https://fluca1978.github.io/2025/07/31/PerlWeeklyChallenge332.html
=20
A well-executed and educationally valuable post. It demonstrates strong
language fluency and a commitment to practical polyglot coding. Both Raku
and SQL solutions are standout examples of expressive minimalism, while
PL/Java and Python offer accessible, mainstream approaches.
--------------

=20
Perl Weekly Challenge 332
https://wlmb.github.io/2025/07/26/PWC332/
=20
is well-written, robust and idiomatic Perl. Task 1 stands out for its
thorough validation and error handling. Task 2 is concise and logically
correct.
--------------

=20
Binary + Odd =3D XOR
https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-332/c=
hallenge-332/matthias-muth#readme
=20
The post is a well-structured, technically sound and Perl-fluent
exploration of the weekly challenge. It not only solves both tasks
concisely but also offers insight into language features, performance
trade-offs and idiomatic Perl practices.
--------------

=20
Oddly Binary
https://packy.dardan.com/b/ZQ
=20
Accurate and efficient solutions in Perl, Raku, Python, and Elixir.
Demonstrates strong understanding of each language=E2=80=99s syntax and s=
tandard
libraries. Clear separation of concerns and well-structured code
snippets.
--------------

=20
Base 2 dates and odd words
http://ccgi.campbellsmiths.force9.co.uk/challenge/332
=20
A strong, idiomatic Perl solution to both problems=E2=80=94optimized, cor=
rect and
pleasantly readable. This write-up reflects deep Perl familiarity and
attention to corner cases.
--------------

=20
The Weekly Challenge #332
https://hatley-software.blogspot.com/2025/07/robbie-hatleys-solutions-in-=
perl-for_29.html
=20
These are technically solid, idiomatic and well-documented. It balances
clarity, efficiency and modern Perl features effectively.
--------------

=20
Odd Date
https://blog.firedrake.org/archive/2025/08/The_Weekly_Challenge_332__Odd_=
Date.html
=20
The post delivers a compact and well-structured solution set, with a focu=
s
on language expressiveness, functional style and algorithmic clarity.
It's especially valuable for readers interested in cross-language
comparisons rather than Perl-only perspectives.
--------------

=20
I sent my date a letter
https://dev.to/simongreennet/weekly-challenge-i-sent-my-date-a-letter-1pp=
g
=20
It delivers solid, minimal and idiomatic solutions in both Python and Per=
l.
The implementations are exactly in line with typical weekly challenge
style: clean, correct and easily accessible to other coders.
--------------

=20
Hypertime
https://khanate.co.uk/weekly/332.html
=20
It is engaging, technically sound and reflects a solid grasp of Raku=E2=
=80=99s
expressive features, especially hyper operators and Bags.
--------------

=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Rakudo

=20
2025.30 A Hexagonal Week
https://rakudoweekly.blog/2025/07/28/2025-30-a-hexagonal-week/
=20
=20
--------------

=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/2025/08/dlix-8-great-cpan-modules-released-
last.html ).
--------------

=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Events

=20
Paris.pm monthly meeting
https://paris.mongueurs.net/
=20
August 13, 2025
--------------

=20
Paris.pm monthly meeting
https://paris.mongueurs.net/
=20
September 10, 2025
--------------

=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


--7aaf27e976d8e132355174d2f434ba659df98d45a18d82029a1334eb9238
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=utf-8
Mime-Version: 1.0





1.0, user-scalable=3Dyes">
Perl Weekly Issue #732 - 2025-08-04 - MetaCPAN Success Story</titl=<BR>e><BR></head><BR><body><BR><BR><style><BR>* { text-align: left; }<BR>table {<BR> font-family: helvetica, arial, sans-serif;<BR> width: 700px;<BR>}<BR>-at-media (max-width: 800px) {<BR> table {<BR> width: 370px;<BR> }<BR>}<BR>p { margin: 1.2em 0em 1.35em 0em; line-height: 1.4em; }<BR>a { color: #04c; }<BR><BR>#menu {<BR> border-bottom: 1px solid #ccc;<BR>}<BR>#menu ul {<BR> text-align: center;<BR> margin: 0;<BR>}<BR>#menu li {<BR> font-size: 12px;<BR> display: inline;<BR> list-style-type: none;<BR> padding-right: 10px;<BR>}<BR><BR>#social_icons {<BR> margin-top: 10px;<BR>}<BR><BR></style><BR><BR><table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" align=3D"center" bg=<BR>color=3D"#ffffff"><BR><tr><td><BR> <p id=3D"logo"><BR> <a href=3D"https://perlweekly.com/" style=3D"<BR> background-color: #004065;<BR> color: #FFF;<BR> text-decoration: none;<BR> font-size: 40px;<BR> font-weight: bold;<BR> font-family: Gadget;<BR> =20<BR> border-radius: 5px;<BR> -moz-border-radius: 5px;<BR> -webkit-border-radius: 5px;<BR> border: 1px solid #000;<BR> padding: 10px;<BR> ">Perl Weekly</a><BR> =20<BR> </p><BR> <p id=3D"issue"<BR> style=3D"border-bottom: 1px solid #ccc;<BR> padding-bottom: 8px;<BR> font-size: 18px;"><BR> Issue #732 - 2025-08-04 - MetaCPAN Success Story<BR> </p><BR><BR> <a href=3D"https://perlweekly.com/latest.html">latest</a> | <a href=3D"=<BR>https://perlweekly.com/archive">archive</a> | edited by <a href=3D"https://=<BR>manwar.org/">Mohammad Sajid Anwar</a><BR><BR> =20<BR> <div><BR> This edition was made possible by the <a href=3D"https://www.patreo=<BR>n.com/manwar">supporters of our cause</a>.<BR> </div><BR> =20<BR><BR> <div style=3D"text-align: center"><BR> You can <a href=3D"https://perlweekly.com/archive/732.html">read the ne=<BR>wsletter on the web</a>, if you prefer.<BR> </div><BR>=20<BR></td></tr><BR><BR><tr><td><BR> <table><BR> <tr><td><BR> =20<BR> <p style=3D"font-size: 16px"><BR> Hi there,<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> <strong>MetaCPAN</strong>'s recent battle against mounting traffic =<BR>abuse stands as a powerful testament to the resilience and ingenuity of ope=<BR>n=E2=80=91source infrastructure teams. After enduring recurring <strong>503=<BR></strong> outages that jeopardized service for <strong>Perl</strong> hacker=<BR>s worldwide, the <strong>MetaCPAN</strong> team embarked on a disciplined, =<BR>data=E2=80=91driven counterattack. What began with rudimentary <strong>logs=<BR></strong>, <strong>robots.txt</strong> tweaks and manual <strong>IP</strong=<BR>> bans evolved into a robust partnership with <a href=3D"https://www.datado=<BR>ghq.com">Datadog</a> and <a href=3D"https://www.fastly.com">Fastly</a>, ena=<BR>bling real=E2=80=91time visibility and proactive defense. With the deployme=<BR>nt of sophisticated <strong>rate=E2=80=91limiting</strong> rules, <strong>u=<BR>ser=E2=80=91agent</strong> filtering, next=E2=80=91generation <strong>WAF</=<BR>strong> protections and a dynamic challenge system, <strong>MetaCPAN</stron=<BR>g> has successfully blocked some <strong>80=E2=80=AFpercent</strong> of mal=<BR>icious traffic=E2=80=94including <strong>AI</strong> scrapers=E2=80=94while=<BR> delivering a steady, reliable experience to legitimate users. This journey=<BR> highlights how transparency, layered defense and smart automation can tran=<BR>sform a crisis into an opportunity for stronger, more sustainable service.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> <strong>Mark Gardner</strong>=E2=80=99s return to <a href=3D"https:=<BR>//phoenixtrap.com">technical blogging</a> marks a welcome revival of one of=<BR> <strong>Perl</strong>=E2=80=99s clearest and most thoughtful voices.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> <strong>Robert Acock</strong> created a mobile app, <strong>Heaven =<BR>Vs Hell</strong>, written using react native and backend API's in <strong>M=<BR>ojolicious</strong>. You can find it in <a href=3D"https://play.google.com/=<BR>store/apps/details?id=3Dio.heavenvshell">Google Play</a> and <a href=3D"htt=<BR>ps://apps.apple.com/us/app/heaven-vs-hell/id6748543465">App Store</a>.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> Enjoy rest of the newsletter.<BR> </p><BR> =20<BR> <p style=3D"font-size: 14px"><BR> Your editor: Mohammad Sajid Anwar.<BR> </p><BR> </td><BR> <td><BR> <img style=3D"right:0; bottom: 0;" src=3D"https://perlweekly.com/i=<BR>mg/mohammad_anwar.png" /><BR> </td></tr><BR> </table><BR></td></tr><BR><BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"announcements" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Announcements</d=<BR>iv><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://blogs.perl.org/users/dean/2025/07/sydney-=<BR>august-meeting.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Sydney August Meeting!</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://fragfest.=<BR>com.au/">Dean Hamstead</a> (<a href=3D"https://meta=<BR>cpan.org/author/DJZORT">DJZORT</a>) </span> =<BR><p style=3D"font-size: 16px"><BR> For all Perl Mongers in and around Sydney, please do join =<BR>the next meetup.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/dean_hamstead.jpg" title=3D"Dean Hamstead" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://blogs.perl.org/users/oodler_577/2025/07/s=<BR>cience-perl-journal-dois-are-now-live-update-on-videos-and-next-issue-of-th=<BR>e-spj.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Science Perl Journal DOIs are now live! Update on video=<BR>s and next Issue of the SPJ</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/oodler_577/">Brett Estrade</a> (<a hre=<BR>f=3D"https://metacpan.org/author/OODLER">OODLER</a>) </spa=<BR>n> <p style=3D"font-size: 16px"><BR> For all Science Perl Journal fan, please find list of perm=<BR>anent DOIs.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/brett_estrade.png" title=3D"Brett Estrade" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"articles" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Articles</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://www.perl.com/article/metacpan-traffic-cri=<BR>sis" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">MetaCPAN's Traffic Crisis: An Eventual Success Story</a=<BR>><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/leo_lapworth">Leo Lapworth</a> (<a hre=<BR>f=3D"https://metacpan.org/author/LLAP">LLAP</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> <strong>MetaCPAN.org</strong>, the essential search engine=<BR> for <strong>Perl=E2=80=99s CPAN</strong> repository has faced months of se=<BR>vere traffic issues that brought the service to its knees with frequent <st=<BR>rong>503</strong> errors.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://apps.apple.com/us/app/heaven-vs-hell/id67=<BR>48543465" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Heaven Vs Hell</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/robert_acock/">Robert Acock</a> </span> =<BR> <p style=3D"font-size: 16px"><BR> The mobile app written using react native and backend API'=<BR>s using Mojolicious.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://phoenixtrap.com/2025/08/03/moodulinos/" s=<BR>tyle=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Lightweight object-oriented Perl scripts: From modulino=<BR>s to moodulinos</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://phoenixt=<BR>rap.com/">Mark Gardner</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> In Moodulinos, Mark Gardner offers a concise yet instructi=<BR>ve journey through modern, lightweight Perl scripting by combining the time=<BR>-tested modulino pattern with the expressive power of Moo.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/mark_gardner.jpeg" title=3D"Mark Gardner" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://phoenixtrap.com/2025/07/28/re-wired-on-pe=<BR>rl-and-the-virtue-of-humility" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Re: Wired on Perl and the virtue of humility</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://phoenixt=<BR>rap.com/">Mark Gardner</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> In his thoughtful response to Samuel Arbesman=E2=80=99s Wi=<BR>red piece, Mark Gardner reframes the conversation around Perl.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/mark_gardner.jpeg" title=3D"Mark Gardner" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"discussion" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Discussion</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://blogs.perl.org/users/robert_rothenberg/20=<BR>25/07/is-it-still-worth-adding-installation-instructions-to-a-distribution.=<BR>html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Is it still worth adding installation instructions to a=<BR> distribution?</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/robert_rothenberg/">Robert Rothenberg</a> =<BR> (<a href=3D"https://metacpan.org/author/RRWO">RRWO</a>) =<BR> </span> <p style=3D"font-size: 16px"><BR> This post is a thoughtful prompt for Perl developers maint=<BR>aining CPAN modules.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"the_weekly_challenge" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">The Weekly Chall=<BR>enge</div><BR> =20<BR> <p style=3D"font-size: 16px"><a href=3D"https://theweeklychalle=<BR>nge.org">The Weekly Challenge</a> by <a href=3D"https://manwar.org">Mohamma=<BR>d Sajid Anwar</a> will help you step out of your comfort-zone. You can even=<BR> win prize money of $50 by participating in the weekly challenge. We pick o=<BR>ne champion at the end of the month from among all of the contributors duri=<BR>ng the month, thanks to the sponsor Lance Wicks.</p><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://theweeklychallenge.org/blog/perl-weekly-c=<BR>hallenge-333" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Weekly Challenge - 333</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://manwar.o=<BR>rg/">Mohammad Sajid Anwar</a> (<a href=3D"https://m=<BR>etacpan.org/author/MANWAR">MANWAR</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> Welcome to a new week with a couple of fun tasks "Straight=<BR> Line" and "Duplicate Zeros". If you are new to the weekly challenge then w=<BR>hy not join us and have fun every week. For more information, please read t=<BR>he <a href=3D"https://theweeklychallenge.org/faq">FAQ</a>.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/mohammad_anwar.png" title=3D"Mohammad Sajid Anwar" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://theweeklychallenge.org/blog/recap-challen=<BR>ge-332" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">RECAP - The Weekly Challenge - 332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://manwar.o=<BR>rg/">Mohammad Sajid Anwar</a> (<a href=3D"https://m=<BR>etacpan.org/author/MANWAR">MANWAR</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> Enjoy a quick recap of last week's contributions by Team P=<BR>WC dealing with the "Binary Date" and "Odd Letters" tasks in Perl and Raku.=<BR> You will find plenty of solutions to keep you busy.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/mohammad_anwar.png" title=3D"Mohammad Sajid Anwar" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://deadmarshal.blogspot.com/2025/07/twc332.h=<BR>tml" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">TWC332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Ali Moradi </span> <p =<BR>style=3D"font-size: 16px"><BR> Both solutions are compact and idiomatic Perl, ideal for s=<BR>cripting and competitive programming.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://raku-musings.com/odd-date.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">An Odd Date</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Arne Sommer </span> <p=<BR> style=3D"font-size: 16px"><BR> A technically sound and idiomatic Raku solution with solid=<BR> input handling, effective use of Raku=E2=80=99s expressive syntax, and cle=<BR>an logic.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://dev.to/boblied/pwc-331-332-odd-last-date-=<BR>letters-binary-word-list-buddy-ib6" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Odd last date letters, binary word list buddy</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Bob Lied </span> <p st=<BR>yle=3D"font-size: 16px"><BR> The solutions are terse, elegant, and showcase modern Perl=<BR> idioms. They shine in clarity for those familiar with Perl 5.42+, especial=<BR>ly with sprintf and all.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://www.braincells.com/perl/2025/07/perl_week=<BR>ly_challenge_week_332.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Weekly Challenge: Week 332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Jaldhar H. Vyas </span> =<BR> <p style=3D"font-size: 16px"><BR> The Raku version shows off the expressive power of high-le=<BR>vel language features (like Bag and junctions) in a tight one-liner. The Pe=<BR>rl version is longer but more transparent to a general audience, especially=<BR> Perl learners.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://github.sommrey.de/the-bears-den/2025/08/0=<BR>1/ch-332.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Binary Regularities</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Jorg Sommrey </span> <=<BR>p style=3D"font-size: 16px"><BR> A technically impressive post. Task 1 is robust and produc=<BR>tion-ready. Task 2 is a brilliant regex stunt =E2=80=94 best appreciated as=<BR> a learning artifact.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://fluca1978.github.io/2025/07/31/PerlWeekly=<BR>Challenge332.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">quick and easy</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://fluca1978=<BR>.blogspot.com">Luca Ferrari</a> </span> <p s=<BR>tyle=3D"font-size: 16px"><BR> A well-executed and educationally valuable post. It demons=<BR>trates strong language fluency and a commitment to practical polyglot codin=<BR>g. Both Raku and SQL solutions are standout examples of expressive minimali=<BR>sm, while PL/Java and Python offer accessible, mainstream approaches.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://wlmb.github.io/2025/07/26/PWC332/" style=<BR>=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Weekly Challenge 332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by W Luis Mochan </span> =<BR><p style=3D"font-size: 16px"><BR> is well-written, robust and idiomatic Perl. Task 1 stands =<BR>out for its thorough validation and error handling. Task 2 is concise and l=<BR>ogically correct.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://github.com/MatthiasMuth/perlweeklychallen=<BR>ge-club/tree/muthm-332/challenge-332/matthias-muth#readme" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Binary + Odd =3D XOR</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Matthias Muth </span> =<BR><p style=3D"font-size: 16px"><BR> The post is a well-structured, technically sound and Perl-=<BR>fluent exploration of the weekly challenge. It not only solves both tasks c=<BR>oncisely but also offers insight into language features, performance trade-=<BR>offs and idiomatic Perl practices.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://packy.dardan.com/b/ZQ" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Oddly Binary</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/packy_anderson/">Packy Anderson</a> (<=<BR>a href=3D"https://metacpan.org/author/PACKY">PACKY</a>) </=<BR>span> <p style=3D"font-size: 16px"><BR> Accurate and efficient solutions in Perl, Raku, Python, an=<BR>d Elixir. Demonstrates strong understanding of each language=E2=80=99s synt=<BR>ax and standard libraries. Clear separation of concerns and well-structured=<BR> code snippets.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"http://ccgi.campbellsmiths.force9.co.uk/challenge=<BR>/332" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Base 2 dates and odd words</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Peter Campbell Smith </span> =<BR> <p style=3D"font-size: 16px"><BR> A strong, idiomatic Perl solution to both problems=E2=80=<BR>=94optimized, correct and pleasantly readable. This write-up reflects deep =<BR>Perl familiarity and attention to corner cases.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://hatley-software.blogspot.com/2025/07/robb=<BR>ie-hatleys-solutions-in-perl-for_29.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Weekly Challenge #332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://hatley-s=<BR>oftware.blogspot.com/">Robbie Hatley</a> </span> =<BR> <p style=3D"font-size: 16px"><BR> These are technically solid, idiomatic and well-documented=<BR>. It balances clarity, efficiency and modern Perl features effectively.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://blog.firedrake.org/archive/2025/08/The_We=<BR>ekly_Challenge_332__Odd_Date.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Odd Date</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blog.fir=<BR>edrake.org/">Roger Bell West</a> (<a href=3D"https:=<BR>//metacpan.org/author/FIREDRAKE">FIREDRAKE</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> The post delivers a compact and well-structured solution s=<BR>et, with a focus on language expressiveness, functional style and algorithm=<BR>ic clarity. It's especially valuable for readers interested in cross-langua=<BR>ge comparisons rather than Perl-only perspectives.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://dev.to/simongreennet/weekly-challenge-i-s=<BR>ent-my-date-a-letter-1ppg" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">I sent my date a letter</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Simon Green </span> <p=<BR> style=3D"font-size: 16px"><BR> It delivers solid, minimal and idiomatic solutions in both=<BR> Python and Perl. The implementations are exactly in line with typical week=<BR>ly challenge style: clean, correct and easily accessible to other coders.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://khanate.co.uk/weekly/332.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Hypertime</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Simon Proctor </span> =<BR><p style=3D"font-size: 16px"><BR> It is engaging, technically sound and reflects a solid gra=<BR>sp of Raku=E2=80=99s expressive features, especially hyper operators and Ba=<BR>gs.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"rakudo" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Rakudo</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://rakudoweekly.blog/2025/07/28/2025-30-a-he=<BR>xagonal-week/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">2025.30 A Hexagonal Week</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Elizabeth Mattijsen (<a href=<BR>=3D"https://metacpan.org/author/ELIZABETH">ELIZABETH</a>) =<BR></span> <p style=3D"font-size: 16px"><BR> =20<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/elizabeth_mattijsen.png" title=3D"Elizabeth Mattijsen" width=3D"80" /=<BR>><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"weekly_collections" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Weekly collectio=<BR>ns</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"http://niceperl.blogspot.com/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">NICEPERL's lists</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://niceperl.=<BR>blogspot.com/">Miguel Prz</a> (<a href=3D"https://m=<BR>etacpan.org/author/NICEPERL">NICEPERL</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> <a href=3D"https://niceperl.blogspot.com/2025/08/dlix-8-gr=<BR>eat-cpan-modules-released-last.html">Great CPAN modules released last week<=<BR>/a>.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"events" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Events</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://paris.mongueurs.net/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Paris.pm monthly meeting</a><BR> <br /> <p style=3D"font-size: 16px"><BR> August 13, 2025<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://paris.mongueurs.net/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Paris.pm monthly meeting</a><BR> <br /> <p style=3D"font-size: 16px"><BR> September 10, 2025<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR><BR><tr><td><BR><BR><BR><div id=3D"footer" style=3D"<BR> border-top: 1px solid #ccc;<BR> border-bottom: 1px solid #ccc;<BR>"><BR><p><BR>You joined the Perl Weekly to get weekly e-mails about the Perl programming=<BR> language and related topics.<BR><br /><BR>Want to see more? See <a href=3D"https://perlweekly.com/archive/">the archi=<BR>ves</a> of all the issues.<BR><br /><BR>Reading this as a non-subscriber? <a href=3D"https://perlweekly.com/">click=<BR> here to join us</a> free of charge.<BR><br /><BR>(C) Copyright <a href=3D"https://szabgab.com/">Gabor Szabo</a>. The article=<BR>s are copyright the respective authors.</p><BR>You can <a href=3D"https://perlweekly.com/unsubscribe.html">unsubscribe her=<BR>e</a> if you don't want to receive mails any more.<BR></p><BR><p><BR>You can freely redistribute this message if<BR>you keep the whole message intact, including<BR>the Copyright notice and this text.<BR></p><BR><div><BR><BR></td></tr><BR></table><BR><BR></body><BR></html><BR><BR>--7aaf27e976d8e132355174d2f434ba659df98d45a18d82029a1334eb9238--<BR><BR>--===============1008211619==<BR>Content-Type: text/plain; charset="us-ascii"<BR>MIME-Version: 1.0<BR>Content-Transfer-Encoding: 7bit<BR>Content-Disposition: inline<BR><BR>_______________________________________________<BR>Hangout mailing list<BR>Hangout-at-nylxs.com<BR>http://lists.mrbrklyn.com/mailman/listinfo/hangout<BR><BR>--===============1008211619==--<BR><BR>--===============1008211619==<BR>Content-Type: multipart/alternative; boundary=7aaf27e976d8e132355174d2f434ba659df98d45a18d82029a1334eb9238<BR><BR>--7aaf27e976d8e132355174d2f434ba659df98d45a18d82029a1334eb9238<BR>Content-Transfer-Encoding: quoted-printable<BR>Content-Type: text/plain; charset=utf-8<BR>Mime-Version: 1.0<BR><BR>Perl Weekly=20<BR><BR>https://perlweekly.com/<BR><BR>You can read the newsletter on the web, if you prefer.<BR>https://perlweekly.com/archive/732.html<BR><BR><BR><BR>Hi there,<BR><BR><strong>MetaCPAN</strong>'s recent battle against mounting traffic abuse<BR>stands as a powerful testament to the resilience and ingenuity of<BR>open=E2=80=91source infrastructure teams. After enduring recurring<BR><strong>503</strong> outages that jeopardized service for<BR><strong>Perl</strong> hackers worldwide, the <strong>MetaCPAN</strong> team<BR>embarked on a disciplined, data=E2=80=91driven counterattack. What began wi=<BR>th<BR>rudimentary <strong>logs</strong>, <strong>robots.txt</strong> tweaks and<BR>manual <strong>IP</strong> bans evolved into a robust partnership with<BR>Datadog ( https://www.datadoghq.com ) and Fastly ( https://www.fastly.com<BR>), enabling real=E2=80=91time visibility and proactive defense. With the de=<BR>ployment<BR>of sophisticated <strong>rate=E2=80=91limiting</strong> rules,<BR><strong>user=E2=80=91agent</strong> filtering, next=E2=80=91generation <str=<BR>ong>WAF</strong><BR>protections and a dynamic challenge system, <strong>MetaCPAN</strong> has<BR>successfully blocked some <strong>80=E2=80=AFpercent</strong> of malicious<BR>traffic=E2=80=94including <strong>AI</strong> scrapers=E2=80=94while delive=<BR>ring a steady,<BR>reliable experience to legitimate users. This journey highlights how<BR>transparency, layered defense and smart automation can transform a crisis<BR>into an opportunity for stronger, more sustainable service.<BR><BR><strong>Mark Gardner</strong>=E2=80=99s return to technical blogging (<BR>https://phoenixtrap.com ) marks a welcome revival of one of<BR><strong>Perl</strong>=E2=80=99s clearest and most thoughtful voices.<BR><BR><strong>Robert Acock</strong> created a mobile app, <strong>Heaven Vs<BR>Hell</strong>, written using react native and backend API's in<BR><strong>Mojolicious</strong>. You can find it in Google Play (<BR>https://play.google.com/store/apps/details?id=3Dio.heavenvshell ) and App<BR>Store ( https://apps.apple.com/us/app/heaven-vs-hell/id6748543465 ).<BR><BR>Enjoy rest of the newsletter.<BR><BR> --<BR> Your editor: Mohammad Sajid Anwar.<BR><BR><BR>Announcements<BR><BR> =20<BR> Sydney August Meeting!<BR> https://blogs.perl.org/users/dean/2025/07/sydney-august-meeting.html<BR>=20<BR> For all Perl Mongers in and around Sydney, please do join the next meetup=<BR>.<BR> --------------<BR><BR> =20<BR> Science Perl Journal DOIs are now live! Update on videos and next Issue o=<BR>f the SPJ<BR> https://blogs.perl.org/users/oodler_577/2025/07/science-perl-journal-dois=<BR>-are-now-live-update-on-videos-and-next-issue-of-the-spj.html<BR>=20<BR> For all Science Perl Journal fan, please find list of permanent DOIs.<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR>Articles<BR><BR> =20<BR> MetaCPAN's Traffic Crisis: An Eventual Success Story<BR> https://www.perl.com/article/metacpan-traffic-crisis<BR>=20<BR> <strong>MetaCPAN.org</strong>, the essential search engine for<BR> <strong>Perl=E2=80=99s CPAN</strong> repository has faced months of sever=<BR>e<BR> traffic issues that brought the service to its knees with frequent<BR> <strong>503</strong> errors.<BR> --------------<BR><BR> =20<BR> Heaven Vs Hell<BR> https://apps.apple.com/us/app/heaven-vs-hell/id6748543465<BR>=20<BR> The mobile app written using react native and backend API's using<BR> Mojolicious.<BR> --------------<BR><BR> =20<BR> Lightweight object-oriented Perl scripts: From modulinos to moodulinos<BR> https://phoenixtrap.com/2025/08/03/moodulinos/<BR>=20<BR> In Moodulinos, Mark Gardner offers a concise yet instructive journey<BR> through modern, lightweight Perl scripting by combining the time-tested<BR> modulino pattern with the expressive power of Moo.<BR> --------------<BR><BR> =20<BR> Re: Wired on Perl and the virtue of humility<BR> https://phoenixtrap.com/2025/07/28/re-wired-on-perl-and-the-virtue-of-hum=<BR>ility<BR>=20<BR> In his thoughtful response to Samuel Arbesman=E2=80=99s Wired piece, Mark=<BR> Gardner<BR> reframes the conversation around Perl.<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR>Discussion<BR><BR> =20<BR> Is it still worth adding installation instructions to a distribution?<BR> https://blogs.perl.org/users/robert_rothenberg/2025/07/is-it-still-worth-=<BR>adding-installation-instructions-to-a-distribution.html<BR>=20<BR> This post is a thoughtful prompt for Perl developers maintaining CPAN<BR> modules.<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR>The Weekly Challenge<BR>The Weekly Challenge ( https://theweeklychallenge.org ) by Mohammad Sajid<BR> Anwar ( https://manwar.org ) will help you step out of your comfort-zone.<BR> You can even win prize money of $50 by participating in the weekly<BR> challenge. We pick one champion at the end of the month from among all of<BR> the contributors during the month, thanks to the sponsor Lance Wicks.<BR> =20<BR> The Weekly Challenge - 333<BR> https://theweeklychallenge.org/blog/perl-weekly-challenge-333<BR>=20<BR> Welcome to a new week with a couple of fun tasks "Straight Line" and<BR> "Duplicate Zeros". If you are new to the weekly challenge then why not<BR> join us and have fun every week. For more information, please read the<BR> FAQ ( https://theweeklychallenge.org/faq ).<BR> --------------<BR><BR> =20<BR> RECAP - The Weekly Challenge - 332<BR> https://theweeklychallenge.org/blog/recap-challenge-332<BR>=20<BR> Enjoy a quick recap of last week's contributions by Team PWC dealing with<BR> the "Binary Date" and "Odd Letters" tasks in Perl and Raku. You will find<BR> plenty of solutions to keep you busy.<BR> --------------<BR><BR> =20<BR> TWC332<BR> https://deadmarshal.blogspot.com/2025/07/twc332.html<BR>=20<BR> Both solutions are compact and idiomatic Perl, ideal for scripting and<BR> competitive programming.<BR> --------------<BR><BR> =20<BR> An Odd Date<BR> https://raku-musings.com/odd-date.html<BR>=20<BR> A technically sound and idiomatic Raku solution with solid input handling=<BR>,<BR> effective use of Raku=E2=80=99s expressive syntax, and clean logic.<BR> --------------<BR><BR> =20<BR> Odd last date letters, binary word list buddy<BR> https://dev.to/boblied/pwc-331-332-odd-last-date-letters-binary-word-list=<BR>-buddy-ib6<BR>=20<BR> The solutions are terse, elegant, and showcase modern Perl idioms. They<BR> shine in clarity for those familiar with Perl 5.42+, especially with<BR> sprintf and all.<BR> --------------<BR><BR> =20<BR> Perl Weekly Challenge: Week 332<BR> https://www.braincells.com/perl/2025/07/perl_weekly_challenge_week_332.ht=<BR>ml<BR>=20<BR> The Raku version shows off the expressive power of high-level language<BR> features (like Bag and junctions) in a tight one-liner. The Perl version<BR> is longer but more transparent to a general audience, especially Perl<BR> learners.<BR> --------------<BR><BR> =20<BR> Binary Regularities<BR> https://github.sommrey.de/the-bears-den/2025/08/01/ch-332.html<BR>=20<BR> A technically impressive post. Task 1 is robust and production-ready. Tas=<BR>k<BR> 2 is a brilliant regex stunt =E2=80=94 best appreciated as a learning art=<BR>ifact.<BR> --------------<BR><BR> =20<BR> quick and easy<BR> https://fluca1978.github.io/2025/07/31/PerlWeeklyChallenge332.html<BR>=20<BR> A well-executed and educationally valuable post. It demonstrates strong<BR> language fluency and a commitment to practical polyglot coding. Both Raku<BR> and SQL solutions are standout examples of expressive minimalism, while<BR> PL/Java and Python offer accessible, mainstream approaches.<BR> --------------<BR><BR> =20<BR> Perl Weekly Challenge 332<BR> https://wlmb.github.io/2025/07/26/PWC332/<BR>=20<BR> is well-written, robust and idiomatic Perl. Task 1 stands out for its<BR> thorough validation and error handling. Task 2 is concise and logically<BR> correct.<BR> --------------<BR><BR> =20<BR> Binary + Odd =3D XOR<BR> https://github.com/MatthiasMuth/perlweeklychallenge-club/tree/muthm-332/c=<BR>hallenge-332/matthias-muth#readme<BR>=20<BR> The post is a well-structured, technically sound and Perl-fluent<BR> exploration of the weekly challenge. It not only solves both tasks<BR> concisely but also offers insight into language features, performance<BR> trade-offs and idiomatic Perl practices.<BR> --------------<BR><BR> =20<BR> Oddly Binary<BR> https://packy.dardan.com/b/ZQ<BR>=20<BR> Accurate and efficient solutions in Perl, Raku, Python, and Elixir.<BR> Demonstrates strong understanding of each language=E2=80=99s syntax and s=<BR>tandard<BR> libraries. Clear separation of concerns and well-structured code<BR> snippets.<BR> --------------<BR><BR> =20<BR> Base 2 dates and odd words<BR> http://ccgi.campbellsmiths.force9.co.uk/challenge/332<BR>=20<BR> A strong, idiomatic Perl solution to both problems=E2=80=94optimized, cor=<BR>rect and<BR> pleasantly readable. This write-up reflects deep Perl familiarity and<BR> attention to corner cases.<BR> --------------<BR><BR> =20<BR> The Weekly Challenge #332<BR> https://hatley-software.blogspot.com/2025/07/robbie-hatleys-solutions-in-=<BR>perl-for_29.html<BR>=20<BR> These are technically solid, idiomatic and well-documented. It balances<BR> clarity, efficiency and modern Perl features effectively.<BR> --------------<BR><BR> =20<BR> Odd Date<BR> https://blog.firedrake.org/archive/2025/08/The_Weekly_Challenge_332__Odd_=<BR>Date.html<BR>=20<BR> The post delivers a compact and well-structured solution set, with a focu=<BR>s<BR> on language expressiveness, functional style and algorithmic clarity.<BR> It's especially valuable for readers interested in cross-language<BR> comparisons rather than Perl-only perspectives.<BR> --------------<BR><BR> =20<BR> I sent my date a letter<BR> https://dev.to/simongreennet/weekly-challenge-i-sent-my-date-a-letter-1pp=<BR>g<BR>=20<BR> It delivers solid, minimal and idiomatic solutions in both Python and Per=<BR>l.<BR> The implementations are exactly in line with typical weekly challenge<BR> style: clean, correct and easily accessible to other coders.<BR> --------------<BR><BR> =20<BR> Hypertime<BR> https://khanate.co.uk/weekly/332.html<BR>=20<BR> It is engaging, technically sound and reflects a solid grasp of Raku=E2=<BR>=80=99s<BR> expressive features, especially hyper operators and Bags.<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR>Rakudo<BR><BR> =20<BR> 2025.30 A Hexagonal Week<BR> https://rakudoweekly.blog/2025/07/28/2025-30-a-hexagonal-week/<BR>=20<BR> =20<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR>Weekly collections<BR><BR> =20<BR> NICEPERL's lists<BR> http://niceperl.blogspot.com/<BR>=20<BR> Great CPAN modules released last week (<BR> https://niceperl.blogspot.com/2025/08/dlix-8-great-cpan-modules-released-<BR> last.html ).<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR>Events<BR><BR> =20<BR> Paris.pm monthly meeting<BR> https://paris.mongueurs.net/<BR>=20<BR> August 13, 2025<BR> --------------<BR><BR> =20<BR> Paris.pm monthly meeting<BR> https://paris.mongueurs.net/<BR>=20<BR> September 10, 2025<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR><BR><BR><BR>You joined the Perl Weekly to get weekly e-mails about the Perl programming=<BR> language and related topics.<BR><BR>Want to see more? See the archives ( https://perlweekly.com/archive/ ) of a=<BR>ll the issues.<BR><BR>Reading this as a non-subscriber? Join us free of charge. https://perlweekl=<BR>y.com/<BR><BR>(C) Copyright Gabor Szabo https://szabgab.com/<BR>The articles are copyright the respective authors.<BR><BR>You can freely redistribute this message if<BR>you keep the whole message intact, including<BR>the Copyright notice and this text.<BR><BR>If you don't want to receive mails any more<BR>you can unsubscribe here: https://perlweekly.com/unsubscribe.html<BR><BR><BR>--7aaf27e976d8e132355174d2f434ba659df98d45a18d82029a1334eb9238<BR>Content-Transfer-Encoding: quoted-printable<BR>Content-Type: text/html; charset=utf-8<BR>Mime-Version: 1.0<BR><BR><!DOCTYPE html><BR><html lang=3D"en"><BR><head><BR> <meta charset=3D"utf-8"><BR> <meta name=3D"viewport" content=3D"width=3Ddevice-width, initial-scale=3D=<BR>1.0, user-scalable=3Dyes"><BR> <title>Perl Weekly Issue #732 - 2025-08-04 - MetaCPAN Success Story</titl=<BR>e><BR></head><BR><body><BR><BR><style><BR>* { text-align: left; }<BR>table {<BR> font-family: helvetica, arial, sans-serif;<BR> width: 700px;<BR>}<BR>-at-media (max-width: 800px) {<BR> table {<BR> width: 370px;<BR> }<BR>}<BR>p { margin: 1.2em 0em 1.35em 0em; line-height: 1.4em; }<BR>a { color: #04c; }<BR><BR>#menu {<BR> border-bottom: 1px solid #ccc;<BR>}<BR>#menu ul {<BR> text-align: center;<BR> margin: 0;<BR>}<BR>#menu li {<BR> font-size: 12px;<BR> display: inline;<BR> list-style-type: none;<BR> padding-right: 10px;<BR>}<BR><BR>#social_icons {<BR> margin-top: 10px;<BR>}<BR><BR></style><BR><BR><table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" align=3D"center" bg=<BR>color=3D"#ffffff"><BR><tr><td><BR> <p id=3D"logo"><BR> <a href=3D"https://perlweekly.com/" style=3D"<BR> background-color: #004065;<BR> color: #FFF;<BR> text-decoration: none;<BR> font-size: 40px;<BR> font-weight: bold;<BR> font-family: Gadget;<BR> =20<BR> border-radius: 5px;<BR> -moz-border-radius: 5px;<BR> -webkit-border-radius: 5px;<BR> border: 1px solid #000;<BR> padding: 10px;<BR> ">Perl Weekly</a><BR> =20<BR> </p><BR> <p id=3D"issue"<BR> style=3D"border-bottom: 1px solid #ccc;<BR> padding-bottom: 8px;<BR> font-size: 18px;"><BR> Issue #732 - 2025-08-04 - MetaCPAN Success Story<BR> </p><BR><BR> <a href=3D"https://perlweekly.com/latest.html">latest</a> | <a href=3D"=<BR>https://perlweekly.com/archive">archive</a> | edited by <a href=3D"https://=<BR>manwar.org/">Mohammad Sajid Anwar</a><BR><BR> =20<BR> <div><BR> This edition was made possible by the <a href=3D"https://www.patreo=<BR>n.com/manwar">supporters of our cause</a>.<BR> </div><BR> =20<BR><BR> <div style=3D"text-align: center"><BR> You can <a href=3D"https://perlweekly.com/archive/732.html">read the ne=<BR>wsletter on the web</a>, if you prefer.<BR> </div><BR>=20<BR></td></tr><BR><BR><tr><td><BR> <table><BR> <tr><td><BR> =20<BR> <p style=3D"font-size: 16px"><BR> Hi there,<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> <strong>MetaCPAN</strong>'s recent battle against mounting traffic =<BR>abuse stands as a powerful testament to the resilience and ingenuity of ope=<BR>n=E2=80=91source infrastructure teams. After enduring recurring <strong>503=<BR></strong> outages that jeopardized service for <strong>Perl</strong> hacker=<BR>s worldwide, the <strong>MetaCPAN</strong> team embarked on a disciplined, =<BR>data=E2=80=91driven counterattack. What began with rudimentary <strong>logs=<BR></strong>, <strong>robots.txt</strong> tweaks and manual <strong>IP</strong=<BR>> bans evolved into a robust partnership with <a href=3D"https://www.datado=<BR>ghq.com">Datadog</a> and <a href=3D"https://www.fastly.com">Fastly</a>, ena=<BR>bling real=E2=80=91time visibility and proactive defense. With the deployme=<BR>nt of sophisticated <strong>rate=E2=80=91limiting</strong> rules, <strong>u=<BR>ser=E2=80=91agent</strong> filtering, next=E2=80=91generation <strong>WAF</=<BR>strong> protections and a dynamic challenge system, <strong>MetaCPAN</stron=<BR>g> has successfully blocked some <strong>80=E2=80=AFpercent</strong> of mal=<BR>icious traffic=E2=80=94including <strong>AI</strong> scrapers=E2=80=94while=<BR> delivering a steady, reliable experience to legitimate users. This journey=<BR> highlights how transparency, layered defense and smart automation can tran=<BR>sform a crisis into an opportunity for stronger, more sustainable service.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> <strong>Mark Gardner</strong>=E2=80=99s return to <a href=3D"https:=<BR>//phoenixtrap.com">technical blogging</a> marks a welcome revival of one of=<BR> <strong>Perl</strong>=E2=80=99s clearest and most thoughtful voices.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> <strong>Robert Acock</strong> created a mobile app, <strong>Heaven =<BR>Vs Hell</strong>, written using react native and backend API's in <strong>M=<BR>ojolicious</strong>. You can find it in <a href=3D"https://play.google.com/=<BR>store/apps/details?id=3Dio.heavenvshell">Google Play</a> and <a href=3D"htt=<BR>ps://apps.apple.com/us/app/heaven-vs-hell/id6748543465">App Store</a>.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> Enjoy rest of the newsletter.<BR> </p><BR> =20<BR> <p style=3D"font-size: 14px"><BR> Your editor: Mohammad Sajid Anwar.<BR> </p><BR> </td><BR> <td><BR> <img style=3D"right:0; bottom: 0;" src=3D"https://perlweekly.com/i=<BR>mg/mohammad_anwar.png" /><BR> </td></tr><BR> </table><BR></td></tr><BR><BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"announcements" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Announcements</d=<BR>iv><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://blogs.perl.org/users/dean/2025/07/sydney-=<BR>august-meeting.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Sydney August Meeting!</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://fragfest.=<BR>com.au/">Dean Hamstead</a> (<a href=3D"https://meta=<BR>cpan.org/author/DJZORT">DJZORT</a>) </span> =<BR><p style=3D"font-size: 16px"><BR> For all Perl Mongers in and around Sydney, please do join =<BR>the next meetup.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/dean_hamstead.jpg" title=3D"Dean Hamstead" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://blogs.perl.org/users/oodler_577/2025/07/s=<BR>cience-perl-journal-dois-are-now-live-update-on-videos-and-next-issue-of-th=<BR>e-spj.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Science Perl Journal DOIs are now live! Update on video=<BR>s and next Issue of the SPJ</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/oodler_577/">Brett Estrade</a> (<a hre=<BR>f=3D"https://metacpan.org/author/OODLER">OODLER</a>) </spa=<BR>n> <p style=3D"font-size: 16px"><BR> For all Science Perl Journal fan, please find list of perm=<BR>anent DOIs.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/brett_estrade.png" title=3D"Brett Estrade" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"articles" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Articles</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://www.perl.com/article/metacpan-traffic-cri=<BR>sis" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">MetaCPAN's Traffic Crisis: An Eventual Success Story</a=<BR>><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/leo_lapworth">Leo Lapworth</a> (<a hre=<BR>f=3D"https://metacpan.org/author/LLAP">LLAP</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> <strong>MetaCPAN.org</strong>, the essential search engine=<BR> for <strong>Perl=E2=80=99s CPAN</strong> repository has faced months of se=<BR>vere traffic issues that brought the service to its knees with frequent <st=<BR>rong>503</strong> errors.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://apps.apple.com/us/app/heaven-vs-hell/id67=<BR>48543465" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Heaven Vs Hell</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/robert_acock/">Robert Acock</a> </span> =<BR> <p style=3D"font-size: 16px"><BR> The mobile app written using react native and backend API'=<BR>s using Mojolicious.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://phoenixtrap.com/2025/08/03/moodulinos/" s=<BR>tyle=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Lightweight object-oriented Perl scripts: From modulino=<BR>s to moodulinos</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://phoenixt=<BR>rap.com/">Mark Gardner</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> In Moodulinos, Mark Gardner offers a concise yet instructi=<BR>ve journey through modern, lightweight Perl scripting by combining the time=<BR>-tested modulino pattern with the expressive power of Moo.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/mark_gardner.jpeg" title=3D"Mark Gardner" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://phoenixtrap.com/2025/07/28/re-wired-on-pe=<BR>rl-and-the-virtue-of-humility" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Re: Wired on Perl and the virtue of humility</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://phoenixt=<BR>rap.com/">Mark Gardner</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> In his thoughtful response to Samuel Arbesman=E2=80=99s Wi=<BR>red piece, Mark Gardner reframes the conversation around Perl.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/mark_gardner.jpeg" title=3D"Mark Gardner" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"discussion" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Discussion</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://blogs.perl.org/users/robert_rothenberg/20=<BR>25/07/is-it-still-worth-adding-installation-instructions-to-a-distribution.=<BR>html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Is it still worth adding installation instructions to a=<BR> distribution?</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/robert_rothenberg/">Robert Rothenberg</a> =<BR> (<a href=3D"https://metacpan.org/author/RRWO">RRWO</a>) =<BR> </span> <p style=3D"font-size: 16px"><BR> This post is a thoughtful prompt for Perl developers maint=<BR>aining CPAN modules.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"the_weekly_challenge" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">The Weekly Chall=<BR>enge</div><BR> =20<BR> <p style=3D"font-size: 16px"><a href=3D"https://theweeklychalle=<BR>nge.org">The Weekly Challenge</a> by <a href=3D"https://manwar.org">Mohamma=<BR>d Sajid Anwar</a> will help you step out of your comfort-zone. You can even=<BR> win prize money of $50 by participating in the weekly challenge. We pick o=<BR>ne champion at the end of the month from among all of the contributors duri=<BR>ng the month, thanks to the sponsor Lance Wicks.</p><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://theweeklychallenge.org/blog/perl-weekly-c=<BR>hallenge-333" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Weekly Challenge - 333</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://manwar.o=<BR>rg/">Mohammad Sajid Anwar</a> (<a href=3D"https://m=<BR>etacpan.org/author/MANWAR">MANWAR</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> Welcome to a new week with a couple of fun tasks "Straight=<BR> Line" and "Duplicate Zeros". If you are new to the weekly challenge then w=<BR>hy not join us and have fun every week. For more information, please read t=<BR>he <a href=3D"https://theweeklychallenge.org/faq">FAQ</a>.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/mohammad_anwar.png" title=3D"Mohammad Sajid Anwar" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://theweeklychallenge.org/blog/recap-challen=<BR>ge-332" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">RECAP - The Weekly Challenge - 332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://manwar.o=<BR>rg/">Mohammad Sajid Anwar</a> (<a href=3D"https://m=<BR>etacpan.org/author/MANWAR">MANWAR</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> Enjoy a quick recap of last week's contributions by Team P=<BR>WC dealing with the "Binary Date" and "Odd Letters" tasks in Perl and Raku.=<BR> You will find plenty of solutions to keep you busy.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/mohammad_anwar.png" title=3D"Mohammad Sajid Anwar" width=3D"80" /><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://deadmarshal.blogspot.com/2025/07/twc332.h=<BR>tml" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">TWC332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Ali Moradi </span> <p =<BR>style=3D"font-size: 16px"><BR> Both solutions are compact and idiomatic Perl, ideal for s=<BR>cripting and competitive programming.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://raku-musings.com/odd-date.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">An Odd Date</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Arne Sommer </span> <p=<BR> style=3D"font-size: 16px"><BR> A technically sound and idiomatic Raku solution with solid=<BR> input handling, effective use of Raku=E2=80=99s expressive syntax, and cle=<BR>an logic.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://dev.to/boblied/pwc-331-332-odd-last-date-=<BR>letters-binary-word-list-buddy-ib6" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Odd last date letters, binary word list buddy</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Bob Lied </span> <p st=<BR>yle=3D"font-size: 16px"><BR> The solutions are terse, elegant, and showcase modern Perl=<BR> idioms. They shine in clarity for those familiar with Perl 5.42+, especial=<BR>ly with sprintf and all.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://www.braincells.com/perl/2025/07/perl_week=<BR>ly_challenge_week_332.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Weekly Challenge: Week 332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Jaldhar H. Vyas </span> =<BR> <p style=3D"font-size: 16px"><BR> The Raku version shows off the expressive power of high-le=<BR>vel language features (like Bag and junctions) in a tight one-liner. The Pe=<BR>rl version is longer but more transparent to a general audience, especially=<BR> Perl learners.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://github.sommrey.de/the-bears-den/2025/08/0=<BR>1/ch-332.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Binary Regularities</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Jorg Sommrey </span> <=<BR>p style=3D"font-size: 16px"><BR> A technically impressive post. Task 1 is robust and produc=<BR>tion-ready. Task 2 is a brilliant regex stunt =E2=80=94 best appreciated as=<BR> a learning artifact.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://fluca1978.github.io/2025/07/31/PerlWeekly=<BR>Challenge332.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">quick and easy</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://fluca1978=<BR>.blogspot.com">Luca Ferrari</a> </span> <p s=<BR>tyle=3D"font-size: 16px"><BR> A well-executed and educationally valuable post. It demons=<BR>trates strong language fluency and a commitment to practical polyglot codin=<BR>g. Both Raku and SQL solutions are standout examples of expressive minimali=<BR>sm, while PL/Java and Python offer accessible, mainstream approaches.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://wlmb.github.io/2025/07/26/PWC332/" style=<BR>=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Weekly Challenge 332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by W Luis Mochan </span> =<BR><p style=3D"font-size: 16px"><BR> is well-written, robust and idiomatic Perl. Task 1 stands =<BR>out for its thorough validation and error handling. Task 2 is concise and l=<BR>ogically correct.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://github.com/MatthiasMuth/perlweeklychallen=<BR>ge-club/tree/muthm-332/challenge-332/matthias-muth#readme" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Binary + Odd =3D XOR</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Matthias Muth </span> =<BR><p style=3D"font-size: 16px"><BR> The post is a well-structured, technically sound and Perl-=<BR>fluent exploration of the weekly challenge. It not only solves both tasks c=<BR>oncisely but also offers insight into language features, performance trade-=<BR>offs and idiomatic Perl practices.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://packy.dardan.com/b/ZQ" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Oddly Binary</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/packy_anderson/">Packy Anderson</a> (<=<BR>a href=3D"https://metacpan.org/author/PACKY">PACKY</a>) </=<BR>span> <p style=3D"font-size: 16px"><BR> Accurate and efficient solutions in Perl, Raku, Python, an=<BR>d Elixir. Demonstrates strong understanding of each language=E2=80=99s synt=<BR>ax and standard libraries. Clear separation of concerns and well-structured=<BR> code snippets.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"http://ccgi.campbellsmiths.force9.co.uk/challenge=<BR>/332" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Base 2 dates and odd words</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Peter Campbell Smith </span> =<BR> <p style=3D"font-size: 16px"><BR> A strong, idiomatic Perl solution to both problems=E2=80=<BR>=94optimized, correct and pleasantly readable. This write-up reflects deep =<BR>Perl familiarity and attention to corner cases.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://hatley-software.blogspot.com/2025/07/robb=<BR>ie-hatleys-solutions-in-perl-for_29.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Weekly Challenge #332</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://hatley-s=<BR>oftware.blogspot.com/">Robbie Hatley</a> </span> =<BR> <p style=3D"font-size: 16px"><BR> These are technically solid, idiomatic and well-documented=<BR>. It balances clarity, efficiency and modern Perl features effectively.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://blog.firedrake.org/archive/2025/08/The_We=<BR>ekly_Challenge_332__Odd_Date.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Odd Date</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blog.fir=<BR>edrake.org/">Roger Bell West</a> (<a href=3D"https:=<BR>//metacpan.org/author/FIREDRAKE">FIREDRAKE</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> The post delivers a compact and well-structured solution s=<BR>et, with a focus on language expressiveness, functional style and algorithm=<BR>ic clarity. It's especially valuable for readers interested in cross-langua=<BR>ge comparisons rather than Perl-only perspectives.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://dev.to/simongreennet/weekly-challenge-i-s=<BR>ent-my-date-a-letter-1ppg" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">I sent my date a letter</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Simon Green </span> <p=<BR> style=3D"font-size: 16px"><BR> It delivers solid, minimal and idiomatic solutions in both=<BR> Python and Perl. The implementations are exactly in line with typical week=<BR>ly challenge style: clean, correct and easily accessible to other coders.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://khanate.co.uk/weekly/332.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Hypertime</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Simon Proctor </span> =<BR><p style=3D"font-size: 16px"><BR> It is engaging, technically sound and reflects a solid gra=<BR>sp of Raku=E2=80=99s expressive features, especially hyper operators and Ba=<BR>gs.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"rakudo" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Rakudo</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://rakudoweekly.blog/2025/07/28/2025-30-a-he=<BR>xagonal-week/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">2025.30 A Hexagonal Week</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Elizabeth Mattijsen (<a href=<BR>=3D"https://metacpan.org/author/ELIZABETH">ELIZABETH</a>) =<BR></span> <p style=3D"font-size: 16px"><BR> =20<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/elizabeth_mattijsen.png" title=3D"Elizabeth Mattijsen" width=3D"80" /=<BR>><BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"weekly_collections" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Weekly collectio=<BR>ns</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"http://niceperl.blogspot.com/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">NICEPERL's lists</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://niceperl.=<BR>blogspot.com/">Miguel Prz</a> (<a href=3D"https://m=<BR>etacpan.org/author/NICEPERL">NICEPERL</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> <a href=3D"https://niceperl.blogspot.com/2025/08/dlix-8-gr=<BR>eat-cpan-modules-released-last.html">Great CPAN modules released last week<=<BR>/a>.<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR> <tr><td><BR> <hr style=3D"color: red" id=3D"events" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Events</div><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://paris.mongueurs.net/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Paris.pm monthly meeting</a><BR> <br /> <p style=3D"font-size: 16px"><BR> August 13, 2025<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://paris.mongueurs.net/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Paris.pm monthly meeting</a><BR> <br /> <p style=3D"font-size: 16px"><BR> September 10, 2025<BR> </p><BR> =20<BR> </div><BR> =20<BR> </td></tr></table>=20<BR> </td></tr><BR> =20<BR> =20<BR><BR><BR><tr><td><BR><BR><BR><div id=3D"footer" style=3D"<BR> border-top: 1px solid #ccc;<BR> border-bottom: 1px solid #ccc;<BR>"><BR><p><BR>You joined the Perl Weekly to get weekly e-mails about the Perl programming=<BR> language and related topics.<BR><br /><BR>Want to see more? See <a href=3D"https://perlweekly.com/archive/">the archi=<BR>ves</a> of all the issues.<BR><br /><BR>Reading this as a non-subscriber? <a href=3D"https://perlweekly.com/">click=<BR> here to join us</a> free of charge.<BR><br /><BR>(C) Copyright <a href=3D"https://szabgab.com/">Gabor Szabo</a>. The article=<BR>s are copyright the respective authors.</p><BR>You can <a href=3D"https://perlweekly.com/unsubscribe.html">unsubscribe her=<BR>e</a> if you don't want to receive mails any more.<BR></p><BR><p><BR>You can freely redistribute this message if<BR>you keep the whole message intact, including<BR>the Copyright notice and this text.<BR></p><BR><div><BR><BR></td></tr><BR></table><BR><BR></body><BR></html><BR><BR>--7aaf27e976d8e132355174d2f434ba659df98d45a18d82029a1334eb9238--<BR><BR>--===============1008211619==<BR>Content-Type: text/plain; charset="us-ascii"<BR>MIME-Version: 1.0<BR>Content-Transfer-Encoding: 7bit<BR>Content-Disposition: inline<BR><BR>_______________________________________________<BR>Hangout mailing list<BR>Hangout-at-nylxs.com<BR>http://lists.mrbrklyn.com/mailman/listinfo/hangout<BR><BR>--===============1008211619==--<BR><BR></TD> </tr> </table> </TD> </tr> <tr> <TD><img ALT='' src="/images/main_horizontalline.gif" WIDTH="460" HEIGHT="4" VSPACE="8"></TD> </tr> <tr><TD><P><OL><LI><B><A HREF='./messages.html?id=554398&archive=2025-08-01' CLASS='header'>2025-08-03 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Printer Purchases.. </A></B></LI><LI><B><A HREF='./messages.html?id=554399&archive=2025-08-01' CLASS='header'>2025-08-03 Ruben Safir <mrbrklyn-at-panix.com> Re: [Hangout - NYLXS] [NYLXS - HANGOUT] Happy Rosh Hashona </A></B></LI><LI><B><A HREF='./messages.html?id=554400&archive=2025-08-01' CLASS='header'>2025-08-04 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] A Star is Born </A></B></LI><LI><B><A HREF='./messages.html?id=554401&archive=2025-08-01' CLASS='header'>2025-08-04 Gabor Szabo <gabor-at-szabgab.com> Subject: [Hangout - NYLXS] [Perlweekly] #732 - MetaCPAN Success Story </A></B></LI><LI><B><A HREF='./messages.html?id=554402&archive=2025-08-01' CLASS='header'>2025-08-04 Professional Career Services <nj-at-nj.pcsjobs.org> Subject: [Hangout - NYLXS] Starting tonight! Bein Hazmanim Computer Crash </A></B></LI><LI><B><A HREF='./messages.html?id=554403&archive=2025-08-01' CLASS='header'>2025-08-04 From: "Free Software Foundation" <info-at-fsf.org> Subject: [Hangout - NYLXS] =?utf-8?q?Free_Software_Supporter_=E2=80=94_Is?= </A></B></LI><LI><B><A HREF='./messages.html?id=554404&archive=2025-08-01' CLASS='header'>2025-08-05 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] WSJ on Palestinian State declarations and </A></B></LI><LI><B><A HREF='./messages.html?id=554405&archive=2025-08-01' CLASS='header'>2025-08-05 George Moskowitz MD <yehudazev-at-gmail.com> Subject: [Hangout - NYLXS] Petition for a humane Mayor of New York ...Please </A></B></LI><LI><B><A HREF='./messages.html?id=554406&archive=2025-08-01' CLASS='header'>2025-08-07 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Age Discrimonation - Jobs </A></B></LI><LI><B><A HREF='./messages.html?id=554407&archive=2025-08-01' CLASS='header'>2025-08-07 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] You would think a country which has suffered from </A></B></LI><LI><B><A HREF='./messages.html?id=554408&archive=2025-08-01' CLASS='header'>2025-08-09 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] try this </A></B></LI><LI><B><A HREF='./messages.html?id=554409&archive=2025-08-01' CLASS='header'>2025-08-09 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] I am considering this printer - what is your </A></B></LI><LI><B><A HREF='./messages.html?id=554410&archive=2025-08-01' CLASS='header'>2025-08-09 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] I am considering this printer - what is your </A></B></LI><LI><B><A HREF='./messages.html?id=554411&archive=2025-08-01' CLASS='header'>2025-08-10 From: =?UTF-8?B?15DXodek16fXnNeo15nXkCDXodeY15XXk9eZ15Ug15zXnteZ16rXldeSINei16HXp9eZLCDXog==?= Re: [Hangout - NYLXS] A Star is Born </A></B></LI><LI><B><A HREF='./messages.html?id=554412&archive=2025-08-01' CLASS='header'>2025-08-10 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] happy sunday </A></B></LI><LI><B><A HREF='./messages.html?id=554413&archive=2025-08-01' CLASS='header'>2025-08-12 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] A Star is Born </A></B></LI><LI><B><A HREF='./messages.html?id=554414&archive=2025-08-01' CLASS='header'>2025-08-12 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Targeting of Jews in NYC </A></B></LI><LI><B><A HREF='./messages.html?id=554415&archive=2025-08-01' CLASS='header'>2025-08-12 Paul Robert Marino <prmarino1-at-gmail.com> Re: [Hangout - NYLXS] I am considering this printer - what is your </A></B></LI><LI><B><A HREF='./messages.html?id=554416&archive=2025-08-01' CLASS='header'>2025-08-12 Paul Robert Marino <prmarino1-at-gmail.com> Re: [Hangout - NYLXS] I am considering this printer - what is your </A></B></LI><LI><B><A HREF='./messages.html?id=554417&archive=2025-08-01' CLASS='header'>2025-08-12 Professional Career Services <nj-at-nj.pcsjobs.org> Subject: [Hangout - NYLXS] PCS Postings 8-12-25 </A></B></LI><LI><B><A HREF='./messages.html?id=554418&archive=2025-08-01' CLASS='header'>2025-08-13 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] [EXTERNAL] Re: MTA RE: Case 06663370 - Refund </A></B></LI><LI><B><A HREF='./messages.html?id=554419&archive=2025-08-01' CLASS='header'>2025-08-13 From: "Craig Topham, FSF" <info-at-fsf.org> Subject: [Hangout - NYLXS] Meet me at HOPE_16 </A></B></LI><LI><B><A HREF='./messages.html?id=554420&archive=2025-08-01' CLASS='header'>2025-08-13 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Jobs at Downstate Medical Center </A></B></LI><LI><B><A HREF='./messages.html?id=554421&archive=2025-08-01' CLASS='header'>2025-08-13 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Jobs again </A></B></LI><LI><B><A HREF='./messages.html?id=554422&archive=2025-08-01' CLASS='header'>2025-08-14 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] The Anti-Semetic Lies of 9-11 continue to fuel </A></B></LI><LI><B><A HREF='./messages.html?id=554423&archive=2025-08-01' CLASS='header'>2025-08-14 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] [EXTERNAL] Re: MTA RE: Case 06663370 - Refund </A></B></LI><LI><B><A HREF='./messages.html?id=554424&archive=2025-08-01' CLASS='header'>2025-08-14 From: "Eko Kai Alanah Owen, FSF" <info-at-fsf.org> Subject: [Hangout - NYLXS] We want to see how you use free software every </A></B></LI><LI><B><A HREF='./messages.html?id=554425&archive=2025-08-01' CLASS='header'>2025-08-14 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Fighting the Survalence state and the 4th </A></B></LI><LI><B><A HREF='./messages.html?id=554426&archive=2025-08-01' CLASS='header'>2025-08-15 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Apples Future </A></B></LI><LI><B><A HREF='./messages.html?id=554427&archive=2025-08-01' CLASS='header'>2025-08-16 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Strange Experiment in Americana </A></B></LI><LI><B><A HREF='./messages.html?id=554428&archive=2025-08-01' CLASS='header'>2025-08-19 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] techological ethics </A></B></LI><LI><B><A HREF='./messages.html?id=554429&archive=2025-08-01' CLASS='header'>2025-08-15 From: "Free Software Foundation" <info-at-fsf.org> Subject: [Hangout - NYLXS] Meet the locals: Come to the FSF40 celebration </A></B></LI><LI><B><A HREF='./messages.html?id=554430&archive=2025-08-01' CLASS='header'>2025-08-20 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Firing of Pro-Islamists State Department spokesmen </A></B></LI><LI><B><A HREF='./messages.html?id=554431&archive=2025-08-01' CLASS='header'>2025-08-23 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] The innocent starving of people in Gaza... </A></B></LI><LI><B><A HREF='./messages.html?id=554432&archive=2025-08-01' CLASS='header'>2025-08-25 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] [EXTERNAL] Re: MTA RE: Case 06663370 - Refund </A></B></LI><LI><B><A HREF='./messages.html?id=554433&archive=2025-08-01' CLASS='header'>2025-08-25 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] Fishing </A></B></LI><LI><B><A HREF='./messages.html?id=554434&archive=2025-08-01' CLASS='header'>2025-08-25 Gabor Szabo <gabor-at-szabgab.com> Subject: [Hangout - NYLXS] [Perlweekly] #735 - Perl-related events </A></B></LI><LI><B><A HREF='./messages.html?id=554435&archive=2025-08-01' CLASS='header'>2025-08-26 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Weekend Catch </A></B></LI><LI><B><A HREF='./messages.html?id=554436&archive=2025-08-01' CLASS='header'>2025-08-27 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] AI jobs of the future and overpaid now... </A></B></LI><LI><B><A HREF='./messages.html?id=554437&archive=2025-08-01' CLASS='header'>2025-08-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Microsoft Employees revolt over Gaza </A></B></LI><LI><B><A HREF='./messages.html?id=554438&archive=2025-08-01' CLASS='header'>2025-08-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] First Google then Microsoft </A></B></LI><LI><B><A HREF='./messages.html?id=554439&archive=2025-08-01' CLASS='header'>2025-08-28 Ruben Safir <mrbrklyn-at-panix.com> Re: [Hangout - NYLXS] First Google then Microsoft </A></B></LI><LI><B><A HREF='./messages.html?id=554440&archive=2025-08-01' CLASS='header'>2025-08-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Snakes in the Grass and the State Department </A></B></LI><LI><B><A HREF='./messages.html?id=554441&archive=2025-08-01' CLASS='header'>2025-08-29 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Copyright Laws on youtube with Rick Beato </A></B></LI><LI><B><A HREF='./messages.html?id=554442&archive=2025-08-01' CLASS='header'>2025-08-30 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Quantum Computing one step closer </A></B></LI><LI><B><A HREF='./messages.html?id=554443&archive=2025-08-01' CLASS='header'>2025-08-30 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Chinese seem to be taking over slashdot and </A></B></LI><LI><B><A HREF='./messages.html?id=554444&archive=2025-08-01' CLASS='header'>2025-08-31 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Beato and the Copyright Crooks trolling youtube </A></B></LI><LI><B><A HREF='./messages.html?id=554445&archive=2025-08-01' CLASS='header'>2025-08-31 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Save up your money for something really </A></B></LI><LI><B><A HREF='./messages.html?id=554446&archive=2025-08-01' CLASS='header'>2025-08-31 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] Save up your money for something really </A></B></LI></OL></P></TD></tr> <tr> <TD><SPAN Class="header">NYLXS are Do'ers and the first step of Doing is Joining! Join NYLXS and make a difference in your community today!</SPAN></TD> </tr> <tr> <TD><img ALT='' src="/images/main_horizontalline.gif" WIDTH="460" HEIGHT="4" VSPACE="8"></TD> </tr> <tr> <TD><img ALT='' src="/images/spacer.gif" WIDTH="1" HEIGHT="8"></TD> </tr> </table> <!--second table callouts or /includes--> </TD> </tr> </table> </TD> </tr> </table> </TD> </tr> </table> <!--third table closing rules--> <!--end of stack content tables--> <!--close 3 column table--> </DIV> </BODY> </SCRIPT> </HTML>