Tue Feb 17 10:21:22 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-12-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-12-22
FROM Gabor Szabo
SUBJECT Subject: [Hangout - NYLXS] [Perlweekly] #752 - Marlin - OOP Framework
From hangout-bounces-at-nylxs.com Mon Dec 22 16:58:42 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 DB9BA164100;
Mon, 22 Dec 2025 16:58:40 -0500 (EST)
X-Original-To: hangout-at-www2.mrbrklyn.com
Delivered-To: hangout-at-www2.mrbrklyn.com
Received: by mrbrklyn.com (Postfix, from userid 1000)
id D6D5D1640FB; Mon, 22 Dec 2025 16:58:34 -0500 (EST)
Resent-From: Ruben Safir
Resent-Date: Mon, 22 Dec 2025 16:58:34 -0500
Resent-Message-ID: <20251222215834.GA17987-at-www2.mrbrklyn.com>
Resent-To: hangout-at-mrbrklyn.com
X-Original-To: ruben-at-mrbrklyn.com
Delivered-To: ruben-at-mrbrklyn.com
Received: from s.wfbtzbpn.outbound-mail.sendgrid.net
(s.wfbtzbpn.outbound-mail.sendgrid.net [159.183.235.50])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(Client did not present a certificate)
by mrbrklyn.com (Postfix) with ESMTPS id E0E6B1640F3
for ; Mon, 22 Dec 2025 03:39:58 -0500 (EST)
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=Y3JO520NRLany5MUPP8td5gMZNHtk8mhWRXkLcq3UFU=;
b=R37/vZe75vqBFHCfqZBStTK7Od198CGzZ0GVZ/67njrXkuTKYV+NNp5YFMEXszzTqHiW
mudUFw+uvIGSgggs1Uc6POr1xy8+nE+MsX07ExbMqpMBlWnpSCRp2+7/2zHvCUK6BbaCRk
QkeyBQc+aVAlrLpiQH23H9fEq9d3MjKsJpNcbM2Gd31uW8LSyg/C721+4Q1g9HTY0cS+w9
tzXF6aEk/U7rNKxYwe7Bh914GVMyySX4/UngHG26o89u2FdS1wH6+GIVXX978HPeT3boxu
5iRsQ4hEILmf/ZtFhiYXaCR3z/TaJ6lZ8WNGMQLOElSjW2S35vqNj4HPwaU6UBTg==
Received: by recvd-7445688857-zfx6d with SMTP id
recvd-7445688857-zfx6d-1-694903DC-C
2025-12-22 08:39:56.822988343 +0000 UTC m=+384401.676696107
Received: from MjA0MzMyMDc (unknown) by geopod-ismtpd-0 (SG) with HTTP
id quElMPAMSDuelRlOaMzBJg Mon, 22 Dec 2025 08:39:56.786 +0000 (UTC)
Date: Mon, 22 Dec 2025 08:39:56 +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=2F6ApFPPK8dwZP6YspwiLCrOidaZG9c07FW0+?=
=?us-ascii?Q?0r09MdZnLXBrp4KHV9z4B09bxq3ShP1S8lg5UPH?=
=?us-ascii?Q?ltkwwD9rW1SJSZy=2FMgPE1OAuycCEkmtJCL19=2F8k?=
=?us-ascii?Q?7uNFx3MCGKEljQQMxppVmO3ycHrNwpWvXKdGcBD?=
=?us-ascii?Q?w=3D=3D?=
To: ruben-at-mrbrklyn.com
X-Entity-ID: u001.JvYq+PmxR+Jk4HAvLs9YyA==
Subject: [Hangout - NYLXS] [Perlweekly] #752 - Marlin - OOP Framework
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="===============1154318204=="
Errors-To: hangout-bounces-at-nylxs.com
Sender: "Hangout"

--===============1154318204==
Content-Type: multipart/alternative; boundary=89ee87ca2107d29f4b541c14dd0c90bfab8de1fe67d51774262ebdbfa7c8

--89ee87ca2107d29f4b541c14dd0c90bfab8de1fe67d51774262ebdbfa7c8
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/752.html



Hi there,

Marlin? Yet another object-oriented programming framework?

There are plenty of choices available already, but this one is worth
trying, to be honest. A quick introductory post (
https://blogs.perl.org/users/toby_inkster/2025/12/introducing-marlin.html )
on the subject by the creator, Toby Inkster is worth
reading.

Funky? PSPWA Framework?

It's what happens when a PWA and an SPA
have a baby, and that baby is raised by a camel who really cares about user
experience. The pattern of combining PWA capabilities with SPA architecture
has been around for years. Please find out more about it on the official
page ( https://funkyfra.me/about ).

We also had another development release of Perl v5.43.6 (
https://metacpan.org/release/SHAY/perl-5.43.6/ ) a couple of days ago. The
main change is that using goto to jump into the body of a
loop or other block construct from outside is no longer permitted.

The TIOBE Index for December 2025 ( https://www.tiobe.com/tiobe-index )
shows positive signs for Perl. However, you shouldn't take
it too seriously. That said, I really enjoy reading it.

This is the last edition of the year 2025 for me - the
196th issue overall - so Merry Christmas and Happy New Year
2026
to all the readers. Please stay safe and healthy.

Enjoy rest of the newsletter.

--
Your editor: Mohammad Sajid Anwar.


Announcements

=20
Introducing Marlin
https://blogs.perl.org/users/toby_inkster/2025/12/introducing-marlin.html
=20
Yet another OOP framework, where most of your constructors and accessors
will be implemented in XS.
--------------

=20
Funky - The PSPWA Framework
https://funkyfra.me/about
=20
A comprehensive guide to building modern, secure, real-time web
applications with Perl and vanilla JavaScript.
--------------

=20
Foswi=C2=ADki 2.1.10 is re=C2=ADleased
https://blogs.perl.org/users/nuddlegg/2025/12/foswiki-2110-is-released.ht=
ml
=20
We are delighted to announce the new release, which includes 57 significa=
nt
bug fixes compared to the previous 2.1.8 version. This update addresses a
range of important issues and enhances the overall stability and
performance.
--------------

=20

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

The corner of Gabor
A couple of entries sneaked in by Gabor.
=20
Perl Maven online: Live Open Source contribution
https://luma.com/perl-maven
=20
During the holidays, on December 26, there is still an online Perl event =
to
encourage more people to contribute to open source Perl projects. You are
invited!
--------------

=20

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

Articles

=20
Masters of Destiny
https://blogs.perl.org/users/saif/2025/12/masters-of-destiny.html
=20
This post is primarily a philosophical essay. Saif uses a fictional
dialogue to express skepticism about over-reliance on AI and
"dispassionate algorithms," particularly in fields like medicine that
traditionally value human judgment and compassion.
--------------

=20
Mid-life upgrade to the MailBox suite completed
https://blogs.perl.org/users/markov/2025/12/mid-life-upgrade-to-the-mailb=
ox-suite-completed.html
=20
This is a high-quality project maintenance post from Mark. It provides
valuable insight into the pragmatic considerations of modernising a
massive, real-world Perl codebase=E2=80=94decisions about language versio=
ns,
exception frameworks, and managing breaking changes.
--------------

=20
TIOBE Index for December 2025
https://www.tiobe.com/tiobe-index/
=20
This is fun index and not to be taken seriously. Perl has
+1.33% increase and currently ranked
#9.
--------------

=20

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

Perl Advent Calendar

=20
Using Mojolicious::Plugin::Mount to help test your applications
https://perladvent.org/2025/2025-12-15.html
=20
This is an insightful, practical tutorial that presents a clever and
elegant pattern for integration testing in Mojolicious. It demonstrates a
sophisticated understanding of the Mojolicious ecosystem and provides a
viable alternative to the more common approach of mocking HTTP user
agents.
--------------

=20
Auto-instrument your code with OpenTelemetry
https://perladvent.org/2025/2025-12-16.html
=20
The post introduces a new experimental approach for automatically
generating OpenTelemetry traces for Perl code. The traditional options
are either 1) use a pre-built instrumentation library, 2) write a custom
instrumentation library (hard), or 3) manually instrument your code
(tedious). This module offers a fourth, automated path: dynamically
instrumenting Perl modules at runtime without modifying their source
code.
--------------

=20
The Elves Learn to be Lazy
https://perladvent.org/2025/2025-12-17.html
=20
This narrative post is a superb piece of technical communication. It
successfully argues that adopting a modern OO framework like Moose isn't
about "cool new features" for their own sake, but about practical
engineering benefits: safer refactoring, better testing, and more
maintainable code.
--------------

=20
Safer last-minute hotfixes before Christmas
https://perladvent.org/2025/2025-12-18.html
=20
App::Transpierce is a Perl-based command-line utility for managing
configuration changes on production systems. Its core philosophy is to
provide a structured, safe workflow for emergency "hotfixes" where direct
editing on a live server is unavoidable.
--------------

=20
Advent of the Underbar
https://perladvent.org/2025/2025-12-19.html
=20
This is a well-conceived and thoughtfully launched community project. The
post successfully makes the case for the podcast's existence by grounding
it in the Phileppe's genuine passion and a clear, unmet need for recorded
oral history within the Perl ecosystem.
--------------

=20
How SUSE is Using Perl
https://perladvent.org/2025/2025-12-20.html
=20
The primary coverage of the talk concerns SUSE's openQA and the Open Buil=
d
Service. These both lean heavily on Perl and are tools that you may find
useful in your own work.
--------------

=20
The Gift of Readability
https://perladvent.org/2025/2025-12-21.html
=20
The article is a well-crafted narrative that argues readable code is an a=
ct
of empathy and professionalism, not just a stylistic preference. It
stands out by framing technical advice within a memorable story (the
elves at the Present Delivery Network), making the concepts more engaging
than a dry style guide.
--------------

=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 - 353
https://theweeklychallenge.org/blog/perl-weekly-challenge-353
=20
Welcome to a new week with a couple of fun tasks "Max Words" and "Validat=
e
Coupon". 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 - 352
https://theweeklychallenge.org/blog/recap-challenge-352
=20
Enjoy a quick recap of last week's contributions by Team PWC dealing with
the "Match String" and "Binary Prefix" tasks in Perl and Raku. You will
find plenty of solutions to keep you busy.
--------------

=20
TWC352
https://deadmarshal.blogspot.com/2025/12/twc352.html
=20
Overall solid solutions with correct logic. Task2 is particularly
well-implemented. The code demonstrates good Perl idioms and
problem-solving skills.
--------------

=20
Binary Match
https://raku-musings.com/binary-match.html
=20
Arne Sommer presents Raku solutions to the weekly challenge #352,
demonstrating both practical implementations and exploratory algorithmic
thinking. It is worth reading for Raku learners and those interested in
different approaches to these challenges.
--------------

=20
Five is the one-liest number
https://dev.to/boblied/pwc-352-five-is-the-one-liest-number-487e
=20
Solves the problem correctly, efficiently, and readably. Suitable for Per=
l
beginners to intermediate programmers.
--------------

=20
Perl Weekly Challenge: Week 352
https://www.braincells.com/perl/2025/12/perl_weekly_challenge_week_352.ht=
ml
=20
Excellent solutions with clear explanations! Your approach shows good
understanding of both Raku and Perl idioms.
--------------

=20
Triangular Squares
https://github.sommrey.de/the-bears-den/2025/12/19/ch-352.html
=20
This is an excellent and sophisticated technical write-up. It goes beyond
simply providing answers by delving into algorithmic logic, implementing
solutions in multiple languages (Perl and J), and including high-quality
visual aids for understanding complex array operations.
--------------

=20
and here comes Christmas
https://fluca1978.github.io/2025/12/15/PerlWeeklyChallenge352.html
=20
Impressive polyglot implementation - 5 languages plus SQL variants.
Consistent algorithm approach across languages. Good use of
language-specific features. Clear code structure and organization
--------------

=20
Perl Weekly Challenge 352
https://wlmb.github.io/2025/12/16/PWC352/
=20
This is competition-level algorithmic thinking combined with
production-quality code. Truly impressive work!
--------------

=20
Doodling with matches and prefixes
https://packy.dardan.com/b/fi
=20
This is a solid and practical solution guide for Perl Weekly Challenge
#352. Its primary strength lies in the Packy's exploration of the same
solution logic across four different programming languages (Raku, Perl,
Python, Elixir), providing excellent comparative value for polyglot
programmers.
--------------

=20
Bits of strings and strings of bits
http://ccgi.campbellsmiths.force9.co.uk/challenge/352
=20
The solutions are not just correct, but thoughtfully optimized and
well-engineered. Clear documentation of design decisions.
--------------

=20
The Weekly Challenge #352
https://hatley-software.blogspot.com/2025/12/robbie-hatleys-solutions-in-=
perl-for_17.html
=20
This post presents a functional but simplistic approach to solving the tw=
o
challenges.
--------------

=20
Prefix the Matches in Strings of Binary
https://blog.firedrake.org/archive/2025/12/The_Weekly_Challenge_352__Pref=
ix_the_Matches_in_Strings_of_Binary.html
=20
This is excellent work from a clearly experienced developer. The solution=
s
are clean, maintainable code. Roger demonstrates strong algorithmic
thinking and practical implementation skills.
--------------

=20
Strings and Binaries
https://dev.to/simongreennet/weekly-challenge-strings-and-binaries-d7k
=20
This is a solid, practical implementation of coding challenges that
correctly solves the problems. Simon demonstrates good programming
fundamentals and language knowledge.
--------------

=20
Not So Loopy Digits
https://blog.ysth.info/not-so-loopy-digits/
=20
This solution demonstrates expert-level understanding of formal language
theory and automata. This is PhD-level computer science applied to a
coding challenge.
--------------

=20

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

Rakudo

=20
2025.50 Exemplar Poll
https://rakudoweekly.blog/2025/12/15/2025-50-exemplar-poll/
=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/12/dlxxix-16-great-cpan-modules-releas
ed.html );
MetaCPAN weekly report (
https://niceperl.blogspot.com/2025/12/dcxxi-metacpan-weekly-report-mcp.ht
ml ).
--------------

=20

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

Events

=20
Perl Maven online: Live Open Source contribution
https://luma.com/perl-maven
=20
December 26, 2025
--------------

=20
Boston.pm - online=20
https://mobilizon.us/search?search=3DBoston+Perl
=20
January 13, 2025
--------------

=20
German Perl/Raku Workshop 2026 in Berlin
https://act.yapc.eu/gpw2026/
=20
March 16-18, 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


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





1.0, user-scalable=3Dyes">
Perl Weekly Issue #752 - 2025-12-22 - Marlin - OOP Framework</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 #752 - 2025-12-22 - Marlin - OOP Framework<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/752.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>Marlin? Yet another object-oriented programming framework?<=<BR>/strong><BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> There are plenty of choices available already, but this one is wort=<BR>h trying, to be honest. A <a href=3D"https://blogs.perl.org/users/toby_inks=<BR>ter/2025/12/introducing-marlin.html">quick introductory post</a> on the sub=<BR>ject by the creator, <strong>Toby Inkster</strong> is worth reading.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> <strong>Funky? PSPWA Framework?</strong><BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> It's what happens when a <strong>PWA</strong> and an <strong>SPA</s=<BR>trong> have a baby, and that baby is raised by a camel who really cares abo=<BR>ut user experience. The pattern of combining PWA capabilities with SPA arch=<BR>itecture has been around for years. Please find out more about it on the <a=<BR> href=3D"https://funkyfra.me/about">official page</a>.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> We also had another development release of <a href=3D"https://metac=<BR>pan.org/release/SHAY/perl-5.43.6/">Perl v5.43.6</a> a couple of days ago. T=<BR>he main change is that using <strong>goto</strong> to jump into the body of=<BR> a loop or other block construct from outside is no longer permitted.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> The <a href=3D"https://www.tiobe.com/tiobe-index">TIOBE Index for D=<BR>ecember 2025</a> shows positive signs for <strong>Perl</strong>. However, y=<BR>ou shouldn't take it too seriously. That said, I really enjoy reading it.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> This is the last edition of the year <strong>2025</strong> for me -=<BR> the <strong>196th issue overall - so <strong>Merry Christmas and Happy New=<BR> Year 2026</strong> to all the readers. Please stay safe and healthy.<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/toby_inkster/2025/12=<BR>/introducing-marlin.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Introducing Marlin</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/toby_inkster/">Toby Inkster</a> (<a hr=<BR>ef=3D"https://metacpan.org/author/TOBYINK">TOBYINK</a>) </=<BR>span> <p style=3D"font-size: 16px"><BR> Yet another OOP framework, where most of your constructors=<BR> and accessors will be implemented in XS.<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://funkyfra.me/about" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Funky - The PSPWA Framework</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> A comprehensive guide to building modern, secure, real-tim=<BR>e web applications with Perl and vanilla JavaScript.<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://blogs.perl.org/users/nuddlegg/2025/12/fos=<BR>wiki-2110-is-released.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Foswi=C2=ADki 2.1.10 is re=C2=ADleased</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://foswiki.=<BR>org/Main/MichaelDaum">Michael Daum</a> </span> =<BR> <p style=3D"font-size: 16px"><BR> We are delighted to announce the new release, which includ=<BR>es 57 significant bug fixes compared to the previous 2.1.8 version. This up=<BR>date addresses a range of important issues and enhances the overall stabili=<BR>ty and performance.<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_corner_of_gabor" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">The corner of Ga=<BR>bor</div><BR> =20<BR> <p style=3D"font-size: 16px">A couple of entries sneaked in by =<BR>Gabor.</p><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> style=3D"<BR> background-color:#EEEEEE;<BR> border-radius: 10px;<BR> -moz-border-radius: 10px;<BR> -webkit-border-radius: 10px;<BR> padding-left: 10px;<BR> "<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://luma.com/perl-maven" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Maven online: Live Open Source contribution</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://szabgab.=<BR>com/">Gabor Szabo</a> (<a href=3D"https://metacpan.=<BR>org/author/SZABGAB">SZABGAB</a>) </span> <p =<BR>style=3D"font-size: 16px"><BR> During the holidays, on December 26, there is still an onl=<BR>ine Perl event to encourage more people to contribute to open source Perl p=<BR>rojects. You are invited!<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/gabor_szabo.png" title=3D"Gabor Szabo" 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://blogs.perl.org/users/saif/2025/12/masters=<BR>-of-destiny.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Masters of Destiny</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/saif">Saif Uddin Ahmed</a> (<a href=3D=<BR>"https://metacpan.org/author/SAIFTYNET">SAIFTYNET</a>) </s=<BR>pan> <p style=3D"font-size: 16px"><BR> This post is primarily a philosophical essay. Saif uses a =<BR>fictional dialogue to express skepticism about over-reliance on AI and "dis=<BR>passionate algorithms," particularly in fields like medicine that tradition=<BR>ally value human judgment and compassion.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/saif-uddin-ahmed.jpeg" title=3D"Saif Uddin Ahmed" 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/markov/2025/12/mid-l=<BR>ife-upgrade-to-the-mailbox-suite-completed.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Mid-life upgrade to the MailBox suite completed</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://mark.over=<BR>meer.net/">Mark Overmeer</a> (<a href=3D"https://me=<BR>tacpan.org/author/markov">markov</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> This is a high-quality project maintenance post from Mark.=<BR> It provides valuable insight into the pragmatic considerations of modernis=<BR>ing a massive, real-world Perl codebase=E2=80=94decisions about language ve=<BR>rsions, exception frameworks, and managing breaking changes.<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.tiobe.com/tiobe-index/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">TIOBE Index for December 2025</a><BR> <br /> <p style=3D"font-size: 16px"><BR> This is fun index and not to be taken seriously. Perl has =<BR><strong>+1.33%</strong> increase and currently ranked <strong>#9</strong>.<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"perl_advent_calendar" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Perl Advent Cale=<BR>ndar</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://perladvent.org/2025/2025-12-15.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Using Mojolicious::Plugin::Mount to help test your appl=<BR>ications</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Blabos de Blebe </span> =<BR> <p style=3D"font-size: 16px"><BR> This is an insightful, practical tutorial that presents a =<BR>clever and elegant pattern for integration testing in Mojolicious. It demon=<BR>strates a sophisticated understanding of the Mojolicious ecosystem and prov=<BR>ides a viable alternative to the more common approach of mocking HTTP user =<BR>agents.<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://perladvent.org/2025/2025-12-16.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Auto-instrument your code with OpenTelemetry</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://pinguino=<BR>rodriguez.cl/">Jos=C3=A9 Joaqu=C3=ADn Atria</a> </span> =<BR> <p style=3D"font-size: 16px"><BR> The post introduces a new experimental approach for automa=<BR>tically generating OpenTelemetry traces for Perl code. The traditional opti=<BR>ons are either 1) use a pre-built instrumentation library, 2) write a custo=<BR>m instrumentation library (hard), or 3) manually instrument your code (tedi=<BR>ous). This module offers a fourth, automated path: dynamically instrumentin=<BR>g Perl modules at runtime without modifying their source code.<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://perladvent.org/2025/2025-12-17.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Elves Learn to be Lazy</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/paul_johnson/">Paul Johnson</a> (<a hr=<BR>ef=3D"https://metacpan.org/author/PJCJ">PJCJ</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> This narrative post is a superb piece of technical communi=<BR>cation. It successfully argues that adopting a modern OO framework like Moo=<BR>se isn't about "cool new features" for their own sake, but about practical =<BR>engineering benefits: safer refactoring, better testing, and more maintaina=<BR>ble code.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/paul_johnson.png" title=3D"Paul Johnson" 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://perladvent.org/2025/2025-12-18.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Safer last-minute hotfixes before Christmas</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://brtastic=<BR>.xyz/">Bartosz Jarzyna</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> App::Transpierce is a Perl-based command-line utility for =<BR>managing configuration changes on production systems. Its core philosophy i=<BR>s to provide a structured, safe workflow for emergency "hotfixes" where dir=<BR>ect editing on a live server is unavoidable.<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://perladvent.org/2025/2025-12-19.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Advent of the Underbar</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/book/">Philippe Bruhat</a> (<a href=3D=<BR>"https://metacpan.org/author/BOOK">BOOK</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> This is a well-conceived and thoughtfully launched communi=<BR>ty project. The post successfully makes the case for the podcast's existenc=<BR>e by grounding it in the Phileppe's genuine passion and a clear, unmet need=<BR> for recorded oral history within the Perl ecosystem.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/philippe_bruhat.png" title=3D"Philippe Bruhat" 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://perladvent.org/2025/2025-12-20.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">How SUSE is Using Perl</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Michael Schr=C3=B6der </span> =<BR> <p style=3D"font-size: 16px"><BR> The primary coverage of the talk concerns SUSE's openQA an=<BR>d the Open Build Service. These both lean heavily on Perl and are tools tha=<BR>t you may find useful in your own work.<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://perladvent.org/2025/2025-12-21.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Gift of Readability</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Branislav Zahradnik </span> =<BR> <p style=3D"font-size: 16px"><BR> The article is a well-crafted narrative that argues readab=<BR>le code is an act of empathy and professionalism, not just a stylistic pref=<BR>erence. It stands out by framing technical advice within a memorable story =<BR>(the elves at the Present Delivery Network), making the concepts more engag=<BR>ing than a dry style guide.<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-353" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Weekly Challenge - 353</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 "Max Word=<BR>s" and "Validate Coupon". If you are new to the weekly challenge then why n=<BR>ot join us and have fun every week. For more information, please read the <=<BR>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-352" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">RECAP - The Weekly Challenge - 352</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 "Match String" and "Binary Prefix" tasks in Perl and Ra=<BR>ku. 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/12/twc352.h=<BR>tml" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">TWC352</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Ali Moradi </span> <p =<BR>style=3D"font-size: 16px"><BR> Overall solid solutions with correct logic. Task2 is parti=<BR>cularly well-implemented. The code demonstrates good Perl idioms and proble=<BR>m-solving skills.<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/binary-match.html" style=<BR>=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Binary Match</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://raku-mus=<BR>ings.com/">Arne Sommer</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> Arne Sommer presents Raku solutions to the weekly challeng=<BR>e #352, demonstrating both practical implementations and exploratory algori=<BR>thmic thinking. It is worth reading for Raku learners and those interested =<BR>in different approaches to these challenges.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/arne-sommer.jpeg" title=3D"Arne Sommer" 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://dev.to/boblied/pwc-352-five-is-the-one-li=<BR>est-number-487e" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Five is the one-liest number</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://dev.to/b=<BR>oblied/">Bob Lied</a> </span> <p style=3D"fo=<BR>nt-size: 16px"><BR> Solves the problem correctly, efficiently, and readably. S=<BR>uitable for Perl beginners to intermediate programmers.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/bob-lied.png" title=3D"Bob Lied" 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://www.braincells.com/perl/2025/12/perl_week=<BR>ly_challenge_week_352.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Weekly Challenge: Week 352</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Jaldhar H. Vyas </span> =<BR> <p style=3D"font-size: 16px"><BR> Excellent solutions with clear explanations! Your approach=<BR> shows good understanding of both Raku and Perl idioms.<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/12/1=<BR>9/ch-352.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Triangular Squares</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://github.s=<BR>ommrey.de/">Jorg Sommrey</a> </span> <p styl=<BR>e=3D"font-size: 16px"><BR> This is an excellent and sophisticated technical write-up.=<BR> It goes beyond simply providing answers by delving into algorithmic logic,=<BR> implementing solutions in multiple languages (Perl and J), and including h=<BR>igh-quality visual aids for understanding complex array operations.<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/12/15/PerlWeekly=<BR>Challenge352.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">and here comes Christmas</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> Impressive polyglot implementation - 5 languages plus SQL =<BR>variants. Consistent algorithm approach across languages. Good use of langu=<BR>age-specific features. Clear code structure and organization<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/12/16/PWC352/" style=<BR>=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Weekly Challenge 352</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://wlmb.git=<BR>hub.io/">W Luis Mochan</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> This is competition-level algorithmic thinking combined wi=<BR>th production-quality code. Truly impressive work!<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/luis-mochan.jpeg" title=3D"W Luis Mochan" 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://packy.dardan.com/b/fi" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Doodling with matches and prefixes</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> This is a solid and practical solution guide for Perl Week=<BR>ly Challenge #352. Its primary strength lies in the Packy's exploration of =<BR>the same solution logic across four different programming languages (Raku, =<BR>Perl, Python, Elixir), providing excellent comparative value for polyglot p=<BR>rogrammers.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/packy-anderson.jpeg" title=3D"Packy Anderson" 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"http://ccgi.campbellsmiths.force9.co.uk/challenge=<BR>/352" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Bits of strings and strings of bits</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://ccgi.camp=<BR>bellsmiths.force9.co.uk/">Peter Campbell Smith</a> </span>=<BR> <p style=3D"font-size: 16px"><BR> The solutions are not just correct, but thoughtfully optim=<BR>ized and well-engineered. Clear documentation of design decisions.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/peter-campbell-smith.png" title=3D"Peter Campbell Smith" width=3D"80"=<BR> /><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/12/robb=<BR>ie-hatleys-solutions-in-perl-for_17.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Weekly Challenge #352</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> This post presents a functional but simplistic approach to=<BR> solving the two challenges.<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/12/The_We=<BR>ekly_Challenge_352__Prefix_the_Matches_in_Strings_of_Binary.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Prefix the Matches in Strings of Binary</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> This is excellent work from a clearly experienced develope=<BR>r. The solutions are clean, maintainable code. Roger demonstrates strong al=<BR>gorithmic thinking and practical implementation skills.<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-str=<BR>ings-and-binaries-d7k" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Strings and Binaries</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://dev.to/s=<BR>imongreennet">Simon Green</a> </span> <p sty=<BR>le=3D"font-size: 16px"><BR> This is a solid, practical implementation of coding challe=<BR>nges that correctly solves the problems. Simon demonstrates good programmin=<BR>g fundamentals and language knowledge.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/simon-green.png" title=3D"Simon Green" 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://blog.ysth.info/not-so-loopy-digits/" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Not So Loopy Digits</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Yitzchak Scott-Thoennes </span> =<BR> <p style=3D"font-size: 16px"><BR> This solution demonstrates expert-level understanding of f=<BR>ormal language theory and automata. This is PhD-level computer science appl=<BR>ied to a coding challenge.<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/12/15/2025-50-exem=<BR>plar-poll/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">2025.50 Exemplar Poll</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/12/dlxxix-16=<BR>-great-cpan-modules-released.html">Great CPAN modules released last week</a=<BR>>;<br><a href=3D"https://niceperl.blogspot.com/2025/12/dcxxi-metacpan-weekl=<BR>y-report-mcp.html">MetaCPAN weekly report</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://luma.com/perl-maven" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Maven online: Live Open Source contribution</a><BR> <br /> <p style=3D"font-size: 16px"><BR> December 26, 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://mobilizon.us/search?search=3DBoston+Perl"=<BR> style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Boston.pm - online </a><BR> <br /> <p style=3D"font-size: 16px"><BR> January 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://act.yapc.eu/gpw2026/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">German Perl/Raku Workshop 2026 in Berlin</a><BR> <br /> <p style=3D"font-size: 16px"><BR> March 16-18, 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>--89ee87ca2107d29f4b541c14dd0c90bfab8de1fe67d51774262ebdbfa7c8--<BR><BR>--===============1154318204==<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>--===============1154318204==--<BR><BR>--===============1154318204==<BR>Content-Type: multipart/alternative; boundary=89ee87ca2107d29f4b541c14dd0c90bfab8de1fe67d51774262ebdbfa7c8<BR><BR>--89ee87ca2107d29f4b541c14dd0c90bfab8de1fe67d51774262ebdbfa7c8<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/752.html<BR><BR><BR><BR>Hi there,<BR><BR><strong>Marlin? Yet another object-oriented programming framework?</strong><BR><BR>There are plenty of choices available already, but this one is worth<BR>trying, to be honest. A quick introductory post (<BR>https://blogs.perl.org/users/toby_inkster/2025/12/introducing-marlin.html )<BR>on the subject by the creator, <strong>Toby Inkster</strong> is worth<BR>reading.<BR><BR><strong>Funky? PSPWA Framework?</strong><BR><BR>It's what happens when a <strong>PWA</strong> and an <strong>SPA</strong><BR>have a baby, and that baby is raised by a camel who really cares about user<BR>experience. The pattern of combining PWA capabilities with SPA architecture<BR>has been around for years. Please find out more about it on the official<BR>page ( https://funkyfra.me/about ).<BR><BR>We also had another development release of Perl v5.43.6 (<BR>https://metacpan.org/release/SHAY/perl-5.43.6/ ) a couple of days ago. The<BR>main change is that using <strong>goto</strong> to jump into the body of a<BR>loop or other block construct from outside is no longer permitted.<BR><BR>The TIOBE Index for December 2025 ( https://www.tiobe.com/tiobe-index )<BR>shows positive signs for <strong>Perl</strong>. However, you shouldn't take<BR>it too seriously. That said, I really enjoy reading it.<BR><BR>This is the last edition of the year <strong>2025</strong> for me - the<BR><strong>196th issue overall - so <strong>Merry Christmas and Happy New Year<BR>2026</strong> to all the readers. Please stay safe and healthy.<BR><BR>Enjoy rest of the newsletter.<BR><BR> --<BR> Your editor: Mohammad Sajid Anwar.<BR><BR><BR>Announcements<BR><BR> =20<BR> Introducing Marlin<BR> https://blogs.perl.org/users/toby_inkster/2025/12/introducing-marlin.html<BR>=20<BR> Yet another OOP framework, where most of your constructors and accessors<BR> will be implemented in XS.<BR> --------------<BR><BR> =20<BR> Funky - The PSPWA Framework<BR> https://funkyfra.me/about<BR>=20<BR> A comprehensive guide to building modern, secure, real-time web<BR> applications with Perl and vanilla JavaScript.<BR> --------------<BR><BR> =20<BR> Foswi=C2=ADki 2.1.10 is re=C2=ADleased<BR> https://blogs.perl.org/users/nuddlegg/2025/12/foswiki-2110-is-released.ht=<BR>ml<BR>=20<BR> We are delighted to announce the new release, which includes 57 significa=<BR>nt<BR> bug fixes compared to the previous 2.1.8 version. This update addresses a<BR> range of important issues and enhances the overall stability and<BR> performance.<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR>The corner of Gabor<BR>A couple of entries sneaked in by Gabor.<BR> =20<BR> Perl Maven online: Live Open Source contribution<BR> https://luma.com/perl-maven<BR>=20<BR> During the holidays, on December 26, there is still an online Perl event =<BR>to<BR> encourage more people to contribute to open source Perl projects. You are<BR> invited!<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> Masters of Destiny<BR> https://blogs.perl.org/users/saif/2025/12/masters-of-destiny.html<BR>=20<BR> This post is primarily a philosophical essay. Saif uses a fictional<BR> dialogue to express skepticism about over-reliance on AI and<BR> "dispassionate algorithms," particularly in fields like medicine that<BR> traditionally value human judgment and compassion.<BR> --------------<BR><BR> =20<BR> Mid-life upgrade to the MailBox suite completed<BR> https://blogs.perl.org/users/markov/2025/12/mid-life-upgrade-to-the-mailb=<BR>ox-suite-completed.html<BR>=20<BR> This is a high-quality project maintenance post from Mark. It provides<BR> valuable insight into the pragmatic considerations of modernising a<BR> massive, real-world Perl codebase=E2=80=94decisions about language versio=<BR>ns,<BR> exception frameworks, and managing breaking changes.<BR> --------------<BR><BR> =20<BR> TIOBE Index for December 2025<BR> https://www.tiobe.com/tiobe-index/<BR>=20<BR> This is fun index and not to be taken seriously. Perl has<BR> <strong>+1.33%</strong> increase and currently ranked<BR> <strong>#9</strong>.<BR> --------------<BR><BR> =20<BR><BR>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<BR><BR>Perl Advent Calendar<BR><BR> =20<BR> Using Mojolicious::Plugin::Mount to help test your applications<BR> https://perladvent.org/2025/2025-12-15.html<BR>=20<BR> This is an insightful, practical tutorial that presents a clever and<BR> elegant pattern for integration testing in Mojolicious. It demonstrates a<BR> sophisticated understanding of the Mojolicious ecosystem and provides a<BR> viable alternative to the more common approach of mocking HTTP user<BR> agents.<BR> --------------<BR><BR> =20<BR> Auto-instrument your code with OpenTelemetry<BR> https://perladvent.org/2025/2025-12-16.html<BR>=20<BR> The post introduces a new experimental approach for automatically<BR> generating OpenTelemetry traces for Perl code. The traditional options<BR> are either 1) use a pre-built instrumentation library, 2) write a custom<BR> instrumentation library (hard), or 3) manually instrument your code<BR> (tedious). This module offers a fourth, automated path: dynamically<BR> instrumenting Perl modules at runtime without modifying their source<BR> code.<BR> --------------<BR><BR> =20<BR> The Elves Learn to be Lazy<BR> https://perladvent.org/2025/2025-12-17.html<BR>=20<BR> This narrative post is a superb piece of technical communication. It<BR> successfully argues that adopting a modern OO framework like Moose isn't<BR> about "cool new features" for their own sake, but about practical<BR> engineering benefits: safer refactoring, better testing, and more<BR> maintainable code.<BR> --------------<BR><BR> =20<BR> Safer last-minute hotfixes before Christmas<BR> https://perladvent.org/2025/2025-12-18.html<BR>=20<BR> App::Transpierce is a Perl-based command-line utility for managing<BR> configuration changes on production systems. Its core philosophy is to<BR> provide a structured, safe workflow for emergency "hotfixes" where direct<BR> editing on a live server is unavoidable.<BR> --------------<BR><BR> =20<BR> Advent of the Underbar<BR> https://perladvent.org/2025/2025-12-19.html<BR>=20<BR> This is a well-conceived and thoughtfully launched community project. The<BR> post successfully makes the case for the podcast's existence by grounding<BR> it in the Phileppe's genuine passion and a clear, unmet need for recorded<BR> oral history within the Perl ecosystem.<BR> --------------<BR><BR> =20<BR> How SUSE is Using Perl<BR> https://perladvent.org/2025/2025-12-20.html<BR>=20<BR> The primary coverage of the talk concerns SUSE's openQA and the Open Buil=<BR>d<BR> Service. These both lean heavily on Perl and are tools that you may find<BR> useful in your own work.<BR> --------------<BR><BR> =20<BR> The Gift of Readability<BR> https://perladvent.org/2025/2025-12-21.html<BR>=20<BR> The article is a well-crafted narrative that argues readable code is an a=<BR>ct<BR> of empathy and professionalism, not just a stylistic preference. It<BR> stands out by framing technical advice within a memorable story (the<BR> elves at the Present Delivery Network), making the concepts more engaging<BR> than a dry style guide.<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 - 353<BR> https://theweeklychallenge.org/blog/perl-weekly-challenge-353<BR>=20<BR> Welcome to a new week with a couple of fun tasks "Max Words" and "Validat=<BR>e<BR> Coupon". If you are new to the weekly challenge then why not join us and<BR> have fun every week. For more information, please read the FAQ (<BR> https://theweeklychallenge.org/faq ).<BR> --------------<BR><BR> =20<BR> RECAP - The Weekly Challenge - 352<BR> https://theweeklychallenge.org/blog/recap-challenge-352<BR>=20<BR> Enjoy a quick recap of last week's contributions by Team PWC dealing with<BR> the "Match String" and "Binary Prefix" tasks in Perl and Raku. You will<BR> find plenty of solutions to keep you busy.<BR> --------------<BR><BR> =20<BR> TWC352<BR> https://deadmarshal.blogspot.com/2025/12/twc352.html<BR>=20<BR> Overall solid solutions with correct logic. Task2 is particularly<BR> well-implemented. The code demonstrates good Perl idioms and<BR> problem-solving skills.<BR> --------------<BR><BR> =20<BR> Binary Match<BR> https://raku-musings.com/binary-match.html<BR>=20<BR> Arne Sommer presents Raku solutions to the weekly challenge #352,<BR> demonstrating both practical implementations and exploratory algorithmic<BR> thinking. It is worth reading for Raku learners and those interested in<BR> different approaches to these challenges.<BR> --------------<BR><BR> =20<BR> Five is the one-liest number<BR> https://dev.to/boblied/pwc-352-five-is-the-one-liest-number-487e<BR>=20<BR> Solves the problem correctly, efficiently, and readably. Suitable for Per=<BR>l<BR> beginners to intermediate programmers.<BR> --------------<BR><BR> =20<BR> Perl Weekly Challenge: Week 352<BR> https://www.braincells.com/perl/2025/12/perl_weekly_challenge_week_352.ht=<BR>ml<BR>=20<BR> Excellent solutions with clear explanations! Your approach shows good<BR> understanding of both Raku and Perl idioms.<BR> --------------<BR><BR> =20<BR> Triangular Squares<BR> https://github.sommrey.de/the-bears-den/2025/12/19/ch-352.html<BR>=20<BR> This is an excellent and sophisticated technical write-up. It goes beyond<BR> simply providing answers by delving into algorithmic logic, implementing<BR> solutions in multiple languages (Perl and J), and including high-quality<BR> visual aids for understanding complex array operations.<BR> --------------<BR><BR> =20<BR> and here comes Christmas<BR> https://fluca1978.github.io/2025/12/15/PerlWeeklyChallenge352.html<BR>=20<BR> Impressive polyglot implementation - 5 languages plus SQL variants.<BR> Consistent algorithm approach across languages. Good use of<BR> language-specific features. Clear code structure and organization<BR> --------------<BR><BR> =20<BR> Perl Weekly Challenge 352<BR> https://wlmb.github.io/2025/12/16/PWC352/<BR>=20<BR> This is competition-level algorithmic thinking combined with<BR> production-quality code. Truly impressive work!<BR> --------------<BR><BR> =20<BR> Doodling with matches and prefixes<BR> https://packy.dardan.com/b/fi<BR>=20<BR> This is a solid and practical solution guide for Perl Weekly Challenge<BR> #352. Its primary strength lies in the Packy's exploration of the same<BR> solution logic across four different programming languages (Raku, Perl,<BR> Python, Elixir), providing excellent comparative value for polyglot<BR> programmers.<BR> --------------<BR><BR> =20<BR> Bits of strings and strings of bits<BR> http://ccgi.campbellsmiths.force9.co.uk/challenge/352<BR>=20<BR> The solutions are not just correct, but thoughtfully optimized and<BR> well-engineered. Clear documentation of design decisions.<BR> --------------<BR><BR> =20<BR> The Weekly Challenge #352<BR> https://hatley-software.blogspot.com/2025/12/robbie-hatleys-solutions-in-=<BR>perl-for_17.html<BR>=20<BR> This post presents a functional but simplistic approach to solving the tw=<BR>o<BR> challenges.<BR> --------------<BR><BR> =20<BR> Prefix the Matches in Strings of Binary<BR> https://blog.firedrake.org/archive/2025/12/The_Weekly_Challenge_352__Pref=<BR>ix_the_Matches_in_Strings_of_Binary.html<BR>=20<BR> This is excellent work from a clearly experienced developer. The solution=<BR>s<BR> are clean, maintainable code. Roger demonstrates strong algorithmic<BR> thinking and practical implementation skills.<BR> --------------<BR><BR> =20<BR> Strings and Binaries<BR> https://dev.to/simongreennet/weekly-challenge-strings-and-binaries-d7k<BR>=20<BR> This is a solid, practical implementation of coding challenges that<BR> correctly solves the problems. Simon demonstrates good programming<BR> fundamentals and language knowledge.<BR> --------------<BR><BR> =20<BR> Not So Loopy Digits<BR> https://blog.ysth.info/not-so-loopy-digits/<BR>=20<BR> This solution demonstrates expert-level understanding of formal language<BR> theory and automata. This is PhD-level computer science applied to a<BR> coding challenge.<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.50 Exemplar Poll<BR> https://rakudoweekly.blog/2025/12/15/2025-50-exemplar-poll/<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/12/dlxxix-16-great-cpan-modules-releas<BR> ed.html );<BR> MetaCPAN weekly report (<BR> https://niceperl.blogspot.com/2025/12/dcxxi-metacpan-weekly-report-mcp.ht<BR> ml ).<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> Perl Maven online: Live Open Source contribution<BR> https://luma.com/perl-maven<BR>=20<BR> December 26, 2025<BR> --------------<BR><BR> =20<BR> Boston.pm - online=20<BR> https://mobilizon.us/search?search=3DBoston+Perl<BR>=20<BR> January 13, 2025<BR> --------------<BR><BR> =20<BR> German Perl/Raku Workshop 2026 in Berlin<BR> https://act.yapc.eu/gpw2026/<BR>=20<BR> March 16-18, 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>--89ee87ca2107d29f4b541c14dd0c90bfab8de1fe67d51774262ebdbfa7c8<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 #752 - 2025-12-22 - Marlin - OOP Framework</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 #752 - 2025-12-22 - Marlin - OOP Framework<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/752.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>Marlin? Yet another object-oriented programming framework?<=<BR>/strong><BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> There are plenty of choices available already, but this one is wort=<BR>h trying, to be honest. A <a href=3D"https://blogs.perl.org/users/toby_inks=<BR>ter/2025/12/introducing-marlin.html">quick introductory post</a> on the sub=<BR>ject by the creator, <strong>Toby Inkster</strong> is worth reading.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> <strong>Funky? PSPWA Framework?</strong><BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> It's what happens when a <strong>PWA</strong> and an <strong>SPA</s=<BR>trong> have a baby, and that baby is raised by a camel who really cares abo=<BR>ut user experience. The pattern of combining PWA capabilities with SPA arch=<BR>itecture has been around for years. Please find out more about it on the <a=<BR> href=3D"https://funkyfra.me/about">official page</a>.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> We also had another development release of <a href=3D"https://metac=<BR>pan.org/release/SHAY/perl-5.43.6/">Perl v5.43.6</a> a couple of days ago. T=<BR>he main change is that using <strong>goto</strong> to jump into the body of=<BR> a loop or other block construct from outside is no longer permitted.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> The <a href=3D"https://www.tiobe.com/tiobe-index">TIOBE Index for D=<BR>ecember 2025</a> shows positive signs for <strong>Perl</strong>. However, y=<BR>ou shouldn't take it too seriously. That said, I really enjoy reading it.<BR> </p><BR> =20<BR> <p style=3D"font-size: 16px"><BR> This is the last edition of the year <strong>2025</strong> for me -=<BR> the <strong>196th issue overall - so <strong>Merry Christmas and Happy New=<BR> Year 2026</strong> to all the readers. Please stay safe and healthy.<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/toby_inkster/2025/12=<BR>/introducing-marlin.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Introducing Marlin</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/toby_inkster/">Toby Inkster</a> (<a hr=<BR>ef=3D"https://metacpan.org/author/TOBYINK">TOBYINK</a>) </=<BR>span> <p style=3D"font-size: 16px"><BR> Yet another OOP framework, where most of your constructors=<BR> and accessors will be implemented in XS.<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://funkyfra.me/about" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Funky - The PSPWA Framework</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> A comprehensive guide to building modern, secure, real-tim=<BR>e web applications with Perl and vanilla JavaScript.<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://blogs.perl.org/users/nuddlegg/2025/12/fos=<BR>wiki-2110-is-released.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Foswi=C2=ADki 2.1.10 is re=C2=ADleased</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://foswiki.=<BR>org/Main/MichaelDaum">Michael Daum</a> </span> =<BR> <p style=3D"font-size: 16px"><BR> We are delighted to announce the new release, which includ=<BR>es 57 significant bug fixes compared to the previous 2.1.8 version. This up=<BR>date addresses a range of important issues and enhances the overall stabili=<BR>ty and performance.<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_corner_of_gabor" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">The corner of Ga=<BR>bor</div><BR> =20<BR> <p style=3D"font-size: 16px">A couple of entries sneaked in by =<BR>Gabor.</p><BR> =20<BR> </td></tr><BR> =20<BR> <tr><td><BR> <table style=3D"width:100%"><tr><td><BR> <div<BR> =20<BR> style=3D"<BR> background-color:#EEEEEE;<BR> border-radius: 10px;<BR> -moz-border-radius: 10px;<BR> -webkit-border-radius: 10px;<BR> padding-left: 10px;<BR> "<BR> =20<BR> ><BR> <p style=3D"margin-left: 1.5em;"><BR> <a href=3D"https://luma.com/perl-maven" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Maven online: Live Open Source contribution</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://szabgab.=<BR>com/">Gabor Szabo</a> (<a href=3D"https://metacpan.=<BR>org/author/SZABGAB">SZABGAB</a>) </span> <p =<BR>style=3D"font-size: 16px"><BR> During the holidays, on December 26, there is still an onl=<BR>ine Perl event to encourage more people to contribute to open source Perl p=<BR>rojects. You are invited!<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/gabor_szabo.png" title=3D"Gabor Szabo" 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://blogs.perl.org/users/saif/2025/12/masters=<BR>-of-destiny.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Masters of Destiny</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/saif">Saif Uddin Ahmed</a> (<a href=3D=<BR>"https://metacpan.org/author/SAIFTYNET">SAIFTYNET</a>) </s=<BR>pan> <p style=3D"font-size: 16px"><BR> This post is primarily a philosophical essay. Saif uses a =<BR>fictional dialogue to express skepticism about over-reliance on AI and "dis=<BR>passionate algorithms," particularly in fields like medicine that tradition=<BR>ally value human judgment and compassion.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/saif-uddin-ahmed.jpeg" title=3D"Saif Uddin Ahmed" 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/markov/2025/12/mid-l=<BR>ife-upgrade-to-the-mailbox-suite-completed.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Mid-life upgrade to the MailBox suite completed</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://mark.over=<BR>meer.net/">Mark Overmeer</a> (<a href=3D"https://me=<BR>tacpan.org/author/markov">markov</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> This is a high-quality project maintenance post from Mark.=<BR> It provides valuable insight into the pragmatic considerations of modernis=<BR>ing a massive, real-world Perl codebase=E2=80=94decisions about language ve=<BR>rsions, exception frameworks, and managing breaking changes.<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.tiobe.com/tiobe-index/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">TIOBE Index for December 2025</a><BR> <br /> <p style=3D"font-size: 16px"><BR> This is fun index and not to be taken seriously. Perl has =<BR><strong>+1.33%</strong> increase and currently ranked <strong>#9</strong>.<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"perl_advent_calendar" /><BR> <div style=3D"font-size: 18px; font-weight: bold;">Perl Advent Cale=<BR>ndar</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://perladvent.org/2025/2025-12-15.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Using Mojolicious::Plugin::Mount to help test your appl=<BR>ications</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Blabos de Blebe </span> =<BR> <p style=3D"font-size: 16px"><BR> This is an insightful, practical tutorial that presents a =<BR>clever and elegant pattern for integration testing in Mojolicious. It demon=<BR>strates a sophisticated understanding of the Mojolicious ecosystem and prov=<BR>ides a viable alternative to the more common approach of mocking HTTP user =<BR>agents.<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://perladvent.org/2025/2025-12-16.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Auto-instrument your code with OpenTelemetry</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://pinguino=<BR>rodriguez.cl/">Jos=C3=A9 Joaqu=C3=ADn Atria</a> </span> =<BR> <p style=3D"font-size: 16px"><BR> The post introduces a new experimental approach for automa=<BR>tically generating OpenTelemetry traces for Perl code. The traditional opti=<BR>ons are either 1) use a pre-built instrumentation library, 2) write a custo=<BR>m instrumentation library (hard), or 3) manually instrument your code (tedi=<BR>ous). This module offers a fourth, automated path: dynamically instrumentin=<BR>g Perl modules at runtime without modifying their source code.<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://perladvent.org/2025/2025-12-17.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Elves Learn to be Lazy</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/paul_johnson/">Paul Johnson</a> (<a hr=<BR>ef=3D"https://metacpan.org/author/PJCJ">PJCJ</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> This narrative post is a superb piece of technical communi=<BR>cation. It successfully argues that adopting a modern OO framework like Moo=<BR>se isn't about "cool new features" for their own sake, but about practical =<BR>engineering benefits: safer refactoring, better testing, and more maintaina=<BR>ble code.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/paul_johnson.png" title=3D"Paul Johnson" 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://perladvent.org/2025/2025-12-18.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Safer last-minute hotfixes before Christmas</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://brtastic=<BR>.xyz/">Bartosz Jarzyna</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> App::Transpierce is a Perl-based command-line utility for =<BR>managing configuration changes on production systems. Its core philosophy i=<BR>s to provide a structured, safe workflow for emergency "hotfixes" where dir=<BR>ect editing on a live server is unavoidable.<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://perladvent.org/2025/2025-12-19.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Advent of the Underbar</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://blogs.pe=<BR>rl.org/users/book/">Philippe Bruhat</a> (<a href=3D=<BR>"https://metacpan.org/author/BOOK">BOOK</a>) </span> =<BR> <p style=3D"font-size: 16px"><BR> This is a well-conceived and thoughtfully launched communi=<BR>ty project. The post successfully makes the case for the podcast's existenc=<BR>e by grounding it in the Phileppe's genuine passion and a clear, unmet need=<BR> for recorded oral history within the Perl ecosystem.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/philippe_bruhat.png" title=3D"Philippe Bruhat" 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://perladvent.org/2025/2025-12-20.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">How SUSE is Using Perl</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Michael Schr=C3=B6der </span> =<BR> <p style=3D"font-size: 16px"><BR> The primary coverage of the talk concerns SUSE's openQA an=<BR>d the Open Build Service. These both lean heavily on Perl and are tools tha=<BR>t you may find useful in your own work.<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://perladvent.org/2025/2025-12-21.html" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Gift of Readability</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Branislav Zahradnik </span> =<BR> <p style=3D"font-size: 16px"><BR> The article is a well-crafted narrative that argues readab=<BR>le code is an act of empathy and professionalism, not just a stylistic pref=<BR>erence. It stands out by framing technical advice within a memorable story =<BR>(the elves at the Present Delivery Network), making the concepts more engag=<BR>ing than a dry style guide.<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-353" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Weekly Challenge - 353</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 "Max Word=<BR>s" and "Validate Coupon". If you are new to the weekly challenge then why n=<BR>ot join us and have fun every week. For more information, please read the <=<BR>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-352" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">RECAP - The Weekly Challenge - 352</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 "Match String" and "Binary Prefix" tasks in Perl and Ra=<BR>ku. 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/12/twc352.h=<BR>tml" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">TWC352</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Ali Moradi </span> <p =<BR>style=3D"font-size: 16px"><BR> Overall solid solutions with correct logic. Task2 is parti=<BR>cularly well-implemented. The code demonstrates good Perl idioms and proble=<BR>m-solving skills.<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/binary-match.html" style=<BR>=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Binary Match</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://raku-mus=<BR>ings.com/">Arne Sommer</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> Arne Sommer presents Raku solutions to the weekly challeng=<BR>e #352, demonstrating both practical implementations and exploratory algori=<BR>thmic thinking. It is worth reading for Raku learners and those interested =<BR>in different approaches to these challenges.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/arne-sommer.jpeg" title=3D"Arne Sommer" 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://dev.to/boblied/pwc-352-five-is-the-one-li=<BR>est-number-487e" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Five is the one-liest number</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://dev.to/b=<BR>oblied/">Bob Lied</a> </span> <p style=3D"fo=<BR>nt-size: 16px"><BR> Solves the problem correctly, efficiently, and readably. S=<BR>uitable for Perl beginners to intermediate programmers.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/bob-lied.png" title=3D"Bob Lied" 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://www.braincells.com/perl/2025/12/perl_week=<BR>ly_challenge_week_352.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Weekly Challenge: Week 352</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Jaldhar H. Vyas </span> =<BR> <p style=3D"font-size: 16px"><BR> Excellent solutions with clear explanations! Your approach=<BR> shows good understanding of both Raku and Perl idioms.<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/12/1=<BR>9/ch-352.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Triangular Squares</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://github.s=<BR>ommrey.de/">Jorg Sommrey</a> </span> <p styl=<BR>e=3D"font-size: 16px"><BR> This is an excellent and sophisticated technical write-up.=<BR> It goes beyond simply providing answers by delving into algorithmic logic,=<BR> implementing solutions in multiple languages (Perl and J), and including h=<BR>igh-quality visual aids for understanding complex array operations.<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/12/15/PerlWeekly=<BR>Challenge352.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">and here comes Christmas</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> Impressive polyglot implementation - 5 languages plus SQL =<BR>variants. Consistent algorithm approach across languages. Good use of langu=<BR>age-specific features. Clear code structure and organization<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/12/16/PWC352/" style=<BR>=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Weekly Challenge 352</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://wlmb.git=<BR>hub.io/">W Luis Mochan</a> </span> <p style=<BR>=3D"font-size: 16px"><BR> This is competition-level algorithmic thinking combined wi=<BR>th production-quality code. Truly impressive work!<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/luis-mochan.jpeg" title=3D"W Luis Mochan" 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://packy.dardan.com/b/fi" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Doodling with matches and prefixes</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> This is a solid and practical solution guide for Perl Week=<BR>ly Challenge #352. Its primary strength lies in the Packy's exploration of =<BR>the same solution logic across four different programming languages (Raku, =<BR>Perl, Python, Elixir), providing excellent comparative value for polyglot p=<BR>rogrammers.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/packy-anderson.jpeg" title=3D"Packy Anderson" 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"http://ccgi.campbellsmiths.force9.co.uk/challenge=<BR>/352" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Bits of strings and strings of bits</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"http://ccgi.camp=<BR>bellsmiths.force9.co.uk/">Peter Campbell Smith</a> </span>=<BR> <p style=3D"font-size: 16px"><BR> The solutions are not just correct, but thoughtfully optim=<BR>ized and well-engineered. Clear documentation of design decisions.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/peter-campbell-smith.png" title=3D"Peter Campbell Smith" width=3D"80"=<BR> /><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/12/robb=<BR>ie-hatleys-solutions-in-perl-for_17.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">The Weekly Challenge #352</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> This post presents a functional but simplistic approach to=<BR> solving the two challenges.<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/12/The_We=<BR>ekly_Challenge_352__Prefix_the_Matches_in_Strings_of_Binary.html" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Prefix the Matches in Strings of Binary</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> This is excellent work from a clearly experienced develope=<BR>r. The solutions are clean, maintainable code. Roger demonstrates strong al=<BR>gorithmic thinking and practical implementation skills.<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-str=<BR>ings-and-binaries-d7k" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Strings and Binaries</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by <a href=3D"https://dev.to/s=<BR>imongreennet">Simon Green</a> </span> <p sty=<BR>le=3D"font-size: 16px"><BR> This is a solid, practical implementation of coding challe=<BR>nges that correctly solves the problems. Simon demonstrates good programmin=<BR>g fundamentals and language knowledge.<BR> </p><BR> =20<BR> </div><BR> </td><td style=3D"width:100px"><img src=3D"https://perlweekly.co=<BR>m/img/simon-green.png" title=3D"Simon Green" 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://blog.ysth.info/not-so-loopy-digits/" styl=<BR>e=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Not So Loopy Digits</a><BR> <br /> <span style=3D"font-size: 14px">=20<BR> by Yitzchak Scott-Thoennes </span> =<BR> <p style=3D"font-size: 16px"><BR> This solution demonstrates expert-level understanding of f=<BR>ormal language theory and automata. This is PhD-level computer science appl=<BR>ied to a coding challenge.<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/12/15/2025-50-exem=<BR>plar-poll/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">2025.50 Exemplar Poll</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/12/dlxxix-16=<BR>-great-cpan-modules-released.html">Great CPAN modules released last week</a=<BR>>;<br><a href=3D"https://niceperl.blogspot.com/2025/12/dcxxi-metacpan-weekl=<BR>y-report-mcp.html">MetaCPAN weekly report</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://luma.com/perl-maven" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Perl Maven online: Live Open Source contribution</a><BR> <br /> <p style=3D"font-size: 16px"><BR> December 26, 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://mobilizon.us/search?search=3DBoston+Perl"=<BR> style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">Boston.pm - online </a><BR> <br /> <p style=3D"font-size: 16px"><BR> January 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://act.yapc.eu/gpw2026/" style=3D"<BR> font-size: 18px;<BR> font-weight: bold;<BR> ">German Perl/Raku Workshop 2026 in Berlin</a><BR> <br /> <p style=3D"font-size: 16px"><BR> March 16-18, 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>--89ee87ca2107d29f4b541c14dd0c90bfab8de1fe67d51774262ebdbfa7c8--<BR><BR>--===============1154318204==<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>--===============1154318204==--<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=554570&archive=2025-12-01' CLASS='header'>2025-12-01 Gabor Szabo <gabor-at-szabgab.com> Subject: [Hangout - NYLXS] [Perlweekly] #749 - Design Patterns in Modern Perl </A></B></LI><LI><B><A HREF='./messages.html?id=554571&archive=2025-12-01' CLASS='header'>2025-12-01 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Hangout - NYLXS] Copyright Wars being sent to the Supreme Court... </A></B></LI><LI><B><A HREF='./messages.html?id=554572&archive=2025-12-01' CLASS='header'>2025-12-01 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Mark Halegua (1953-2020), R.I.P. </A></B></LI><LI><B><A HREF='./messages.html?id=554573&archive=2025-12-01' CLASS='header'>2025-12-01 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Copyright Wars to shutdown internet access.. </A></B></LI><LI><B><A HREF='./messages.html?id=554574&archive=2025-12-01' CLASS='header'>2025-12-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Restricting Healthcare access for Jews </A></B></LI><LI><B><A HREF='./messages.html?id=554575&archive=2025-12-01' CLASS='header'>2025-12-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Starbucks Strike </A></B></LI><LI><B><A HREF='./messages.html?id=554576&archive=2025-12-01' CLASS='header'>2025-12-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Shooting on Avenue J and East 16th Street near </A></B></LI><LI><B><A HREF='./messages.html?id=554577&archive=2025-12-01' CLASS='header'>2025-12-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] High Praise for Linux Desktops </A></B></LI><LI><B><A HREF='./messages.html?id=554578&archive=2025-12-01' CLASS='header'>2025-12-02 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] The death of the internet is finally making some </A></B></LI><LI><B><A HREF='./messages.html?id=554579&archive=2025-12-01' CLASS='header'>2025-12-02 mayer ilovitz <pmamayeri-at-gmail.com> Re: [Hangout - NYLXS] Shooting on Avenue J and East 16th Street </A></B></LI><LI><B><A HREF='./messages.html?id=554580&archive=2025-12-01' CLASS='header'>2025-12-02 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=554581&archive=2025-12-01' CLASS='header'>2025-12-02 shulie <shulie_release-at-optimum.net> Re: [Hangout - NYLXS] Shooting on Avenue J and East 16th Street </A></B></LI><LI><B><A HREF='./messages.html?id=554582&archive=2025-12-01' CLASS='header'>2025-12-02 shulie <shulie_release-at-optimum.net> Re: [Hangout - NYLXS] Shooting on Avenue J and East 16th Street </A></B></LI><LI><B><A HREF='./messages.html?id=554583&archive=2025-12-01' CLASS='header'>2025-12-02 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] Shooting on Avenue J and East 16th Street </A></B></LI><LI><B><A HREF='./messages.html?id=554584&archive=2025-12-01' CLASS='header'>2025-12-04 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] [Jewish] Shooting on Avenue J and East 16th </A></B></LI><LI><B><A HREF='./messages.html?id=554585&archive=2025-12-01' CLASS='header'>2025-12-03 From: "HealthExecWire" <press-at-healthexecwire.com> Subject: [Hangout - NYLXS] Virtual HIPAA Summit 43 Agenda-at-a-Glance Now </A></B></LI><LI><B><A HREF='./messages.html?id=554586&archive=2025-12-01' CLASS='header'>2025-12-05 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Self Driving Cars are coming soon.. </A></B></LI><LI><B><A HREF='./messages.html?id=554587&archive=2025-12-01' CLASS='header'>2025-12-05 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Cybertech the NSA and Israel </A></B></LI><LI><B><A HREF='./messages.html?id=554588&archive=2025-12-01' CLASS='header'>2025-12-06 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Resist Mamdani </A></B></LI><LI><B><A HREF='./messages.html?id=554589&archive=2025-12-01' CLASS='header'>2025-12-07 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Resist Mamdani </A></B></LI><LI><B><A HREF='./messages.html?id=554590&archive=2025-12-01' CLASS='header'>2025-12-07 mayer ilovitz <pmamayeri-at-gmail.com> Re: [Hangout - NYLXS] Resist Mamdani </A></B></LI><LI><B><A HREF='./messages.html?id=554591&archive=2025-12-01' CLASS='header'>2025-12-07 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Has anyone seen Tilly Norwood? </A></B></LI><LI><B><A HREF='./messages.html?id=554592&archive=2025-12-01' CLASS='header'>2025-12-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] wireguard </A></B></LI><LI><B><A HREF='./messages.html?id=554593&archive=2025-12-01' CLASS='header'>2025-12-08 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] wireguard </A></B></LI><LI><B><A HREF='./messages.html?id=554594&archive=2025-12-01' CLASS='header'>2025-12-07 Javier <je-vv-at-e.email> Re: [Hangout - NYLXS] [artix-general] Proton VPN </A></B></LI><LI><B><A HREF='./messages.html?id=554595&archive=2025-12-01' CLASS='header'>2025-12-08 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] [artix-general] Proton VPN </A></B></LI><LI><B><A HREF='./messages.html?id=554596&archive=2025-12-01' CLASS='header'>2025-12-08 aqua <aqua-at-iserlohn-fortress.net> Re: [Hangout - NYLXS] [artix-general] Proton VPN </A></B></LI><LI><B><A HREF='./messages.html?id=554597&archive=2025-12-01' CLASS='header'>2025-12-07 Javier <je-vv-at-e.email> Re: [Hangout - NYLXS] [artix-general] Proton VPN </A></B></LI><LI><B><A HREF='./messages.html?id=554598&archive=2025-12-01' CLASS='header'>2025-12-07 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] [artix-general] Proton VPN </A></B></LI><LI><B><A HREF='./messages.html?id=554599&archive=2025-12-01' CLASS='header'>2025-12-07 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] [artix-general] Proton VPN </A></B></LI><LI><B><A HREF='./messages.html?id=554600&archive=2025-12-01' CLASS='header'>2025-12-06 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] [artix-general] Proton VPN </A></B></LI><LI><B><A HREF='./messages.html?id=554601&archive=2025-12-01' CLASS='header'>2025-12-11 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] WHen you are a hammer - everything is a nail </A></B></LI><LI><B><A HREF='./messages.html?id=554602&archive=2025-12-01' CLASS='header'>2025-12-11 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Hangout - NYLXS] You want to laugh.... </A></B></LI><LI><B><A HREF='./messages.html?id=554603&archive=2025-12-01' CLASS='header'>2025-12-11 From: "Eko Kai Alanah Owen, FSF" <info-at-fsf.org> Subject: [Hangout - NYLXS] Problems with lax licenses, </A></B></LI><LI><B><A HREF='./messages.html?id=554605&archive=2025-12-01' CLASS='header'>2025-12-15 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] The reality of 5 thousand dollar drugss is the </A></B></LI><LI><B><A HREF='./messages.html?id=554606&archive=2025-12-01' CLASS='header'>2025-12-17 From: "Free Software Foundation" <info-at-fsf.org> Subject: [Hangout - NYLXS] Your digital life isn't yours: The hidden battle </A></B></LI><LI><B><A HREF='./messages.html?id=554607&archive=2025-12-01' CLASS='header'>2025-12-17 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] The Adderal scheme bring jail sentences and </A></B></LI><LI><B><A HREF='./messages.html?id=554608&archive=2025-12-01' CLASS='header'>2025-12-19 Ruben Safir <mrbrklyn-at-panix.com> Subject: [Hangout - NYLXS] [invite-at-mauritshuis.nl: Special preview & lecture </A></B></LI><LI><B><A HREF='./messages.html?id=554609&archive=2025-12-01' CLASS='header'>2025-12-21 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Before 9-11 there was the Citicorp collapse - </A></B></LI><LI><B><A HREF='./messages.html?id=554610&archive=2025-12-01' CLASS='header'>2025-12-22 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] How to resist Mamdani - in the Press </A></B></LI><LI><B><A HREF='./messages.html?id=554611&archive=2025-12-01' CLASS='header'>2025-12-22 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] </A></B></LI><LI><B><A HREF='./messages.html?id=554612&archive=2025-12-01' CLASS='header'>2025-12-22 mayer ilovitz <pmamayeri-at-gmail.com> Re: [Hangout - NYLXS] How to resist Mamdani - in the Press </A></B></LI><LI><B><A HREF='./messages.html?id=554613&archive=2025-12-01' CLASS='header'>2025-12-22 Gabor Szabo <gabor-at-szabgab.com> Subject: [Hangout - NYLXS] [Perlweekly] #752 - Marlin - OOP Framework </A></B></LI><LI><B><A HREF='./messages.html?id=554614&archive=2025-12-01' CLASS='header'>2025-12-22 From: "Eko Kai Alanah Owen, FSF" <info-at-fsf.org> Subject: [Hangout - NYLXS] Revive the winter ghost story with the tale of </A></B></LI><LI><B><A HREF='./messages.html?id=554615&archive=2025-12-01' CLASS='header'>2025-12-25 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Open Source Project With Little Revenue In Talks </A></B></LI><LI><B><A HREF='./messages.html?id=554616&archive=2025-12-01' CLASS='header'>2025-12-25 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Jewish and the Arts today </A></B></LI><LI><B><A HREF='./messages.html?id=554617&archive=2025-12-01' CLASS='header'>2025-12-25 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] What is DAWA - removing Jews from history </A></B></LI><LI><B><A HREF='./messages.html?id=554618&archive=2025-12-01' CLASS='header'>2025-12-25 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] The MTA's new cattle cars </A></B></LI><LI><B><A HREF='./messages.html?id=554619&archive=2025-12-01' CLASS='header'>2025-12-25 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Controlling Medical Information </A></B></LI><LI><B><A HREF='./messages.html?id=554620&archive=2025-12-01' CLASS='header'>2025-12-26 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] I am increasingly talking to dead people.. </A></B></LI><LI><B><A HREF='./messages.html?id=554621&archive=2025-12-01' CLASS='header'>2025-12-26 Ruben Safir <ruben-at-mrbrklyn.com> Re: [Hangout - NYLXS] I am increasingly talking to dead people.. </A></B></LI><LI><B><A HREF='./messages.html?id=554622&archive=2025-12-01' CLASS='header'>2025-12-26 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Hijacking the Term Genocide from the person who </A></B></LI><LI><B><A HREF='./messages.html?id=554623&archive=2025-12-01' CLASS='header'>2025-12-27 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] This is why you do NOT send F35s to Saudi Arabia </A></B></LI><LI><B><A HREF='./messages.html?id=554624&archive=2025-12-01' CLASS='header'>2025-12-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Those 90 days fills are killing patients </A></B></LI><LI><B><A HREF='./messages.html?id=554625&archive=2025-12-01' CLASS='header'>2025-12-28 Ruben Safir <ruben-at-mrbrklyn.com> Subject: [Hangout - NYLXS] Lou Gerstner - Dead </A></B></LI><LI><B><A HREF='./messages.html?id=554626&archive=2025-12-01' CLASS='header'>2025-12-29 Gabor Szabo <gabor-at-szabgab.com> Subject: [Hangout - NYLXS] [Perlweekly] #753 - Happy New Year! </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>