This week in PSC (201) | 2025-09-01
All three of us attended, but with Aristotle and Paul short on time. So this was a short meeting. We discussed some administrivia and reviewed the left-over todo list from the previous PSC.
All three of us attended, but with Aristotle and Paul short on time. So this was a short meeting. We discussed some administrivia and reviewed the left-over todo list from the previous PSC.

Design Pattern Factory: Moo vs experimental class feature.
Please check out the link for more information:
https://theweeklychallenge.org/blog/design-pattern-factory
Thanks again to Organic Trader for hosting and providing a venue!
Meeting is as follows...
Speaker:
Stuart Cooper
Time and Date:
6:30-9pm
Wednesday 20th August 2025
Venue:
Organic Trader Pty Ltd
Level 1
Unit 13/809-821 Botany Rd
Rosebery NSW 2018
Getting there:
Walking from either Mascot or Green Square station seems to be roughly the same distance.
Please also join the Sydney PM email list (low volume), Australia Perl on FB, or you can point your browser at the Sydney PM website for the same links in longer form.
I have decided to write a successor to Pod::Readme that works as a Dist::Zilla plugin that plays well with Pod::Weaver.
The idea for Pod::Readme is that a README file that is simply a version of the module documentation isn't all that useful. It often lacks important details like the prerequisites or installation instructions, and it includes a lot of unnecessary details about functions and methods.
A README file should be short and sweet: a synopsis and description, installation instructions and requirements, links to issue trackers, source repos and author/copyright info.
As I am rewriting this, I am wondering if the installation instructions are necessary now?
Many distributions have a generic INSTALL file, generally created by something like Dist::Zilla::Plugin::InstallGuide.
Before Dist::Zilla was as widely used, another option was to add installation instructions to the README file, usually with a few boilerplate along the lines of
The transition meeting to the new PSC proved a bit tricky to schedule to get everyone from both the old and new PSC in attendance, but eventually we succeeded: Aristotle, Graham, Leon, Paul, and Philippe all participated.

Caching using CHI.
Please check out the link for more information:
https://theweeklychallenge.org/blog/caching-using-chi
Prepare yourselves, the Call for Participation for the December PCC will be happening soon!
DOIs:
DOIs like permanent redirects for publications and research assets. They are managed through organizations like Crossref and are assigned at Arxiv.org, for example. They are not fee, and infact require a relatively large financial investment.
Now that we have our ISSN for Issue #1, https://doi.org/10.63971/spj.2024v01 now works! Each article now has a beautiful, permanent DOI that redirects to it's own URL at science.perlcommunity.org.
Current DOIs:
Upcoming Content and Events:
The next few months are going to be very prolific for us. Starting very soon, we are going to begin:
Remember to click 'Continue Reading' or whatever.
You can download Perl Wiki V 1.29.
And you can play with the jsTree version V 1.00.
Also the corresponding Perl module is on CPAN as:
CPAN::MetaCurator V 1.00.
This converts the JSON file exported from Perl.Wiki into a HTML/jsTree managed version.
Hi all,
Hope you are all having a great summer!
Work continues on Dancer2 2.0.0, albeit a bit slower than planned. It's summer; trips happen, things come up, etc. etc. Progress is still happening though - we took in a few extra PRs (with one more incoming still), and a few more approvals for some items are needed.
I'll keep dropping updates as the release approaches. Hoping you are all as excited for this as I am :-)
Keep on Dancing! Jason

Re-creating the vulnerability CVE-2025-40927 in an isolated docker container. Please check out the link for more information:
https://theweeklychallenge.org/blog/cve-2025-40927
XS has a reputation for being hard to access and I think it's a shame because I don't think it has to be: it's mostly that the Perl API is hard. What if you offload as much logic as possible to perl, and use XS only to expose functions to perl? That would be much easier for a casual XS writer who doesn't know anything about Perl's internals.
So, in this example I will write a simple XS module for a real-life API, in this case POSIX real-time semaphores. This allows you to synchronize data between different processes or threads. At its core the API is this:
sem_t* sem_open(const char* path, int open_flags, mode_t mode, unsigned int value);
int sem_close(sem_t *sem);
int sem_unlink(const char* path);
int sem_wait(sem_t *sem);
int sem_trywait(sem_t *sem);
int sem_post(sem_t *sem);
All three of us attended.
buildtoc) and that what we think of as the release process is really a procedure for performing a state transition on the repository, where the repository constitutes the input to makerel, and the state transition aims to trigger the correct change in the output of makerel.We all knew Matt Trout differently.
To some, he was tough. Uncompromising. Intimidating, even. He was half-man, half-thermite, a brilliant intellect with a particular way of loving something so fiercely that if you didn’t match that intensity, he might burn straight through, leaving you feeling crispy at the edges. Others have spoken about his “Get good or get out” attitude and I think it’s important to acknowledge that whilst he forged a lot of people into better programmers, it also drove others away.
But my version of Matt was the best mentor I’ve ever had. He was never condescending, in fact he seemed to have an infinite amount of belief in me and patience with me that I’m not sure what I did to deserve. When I was drowning, he’d pull me out of the water at the last minute, give me a hint, and throw me back into the deep end. I learned to swim because he never doubted that I could.

Caching in Perl using memcached.
Please check out the link for more information:
https://theweeklychallenge.org/blog/caching-using-memcached
At the latest German Perl Workshop I held a 40 min beginner- to mid level talk about Raku (slides). It was about the habits of Perl programmers that turn contra productive with this new language. This article is a summarizing recapitulation of the pitfalls minus the intro about the history of Raku, the zef ecosystem and some general knowledge - for all those who could not attend or don't speak German.
You know how many languages have a "pipe" operator, either ready or in the making? Like PHP, here, for example: https://laravel-news.com/the-pipe-operator-is-coming-to-php-85
Well, Perl v5.42 (almost) has that too! Check these examples:
$ perl -E 'say "Alexander"->&CORE::substr(1, 3);'
lex
$ perl -E 'say ","->&CORE::join(qw/ 10 20 30 /);'
10,20,30
I believe this would work with any user defined or imported subroutine too, instead of the core functions (there you get to omit the "CORE::").
I don't know everyone who is involved in maintaining MetaCPAN and I don't know all the details of the performance related issues that have been an ongoing challenge (I believe they have been related to relentless bots?).
In any case, this last week MetaCPAN seems to have been running flawlessly!
So rather than burying a thanks note in a github issue, I wanted to put a public thanks here to all the volunteers and sponsors that keep MetaCPAN (and CPAN) running.

Reproduce the vulnerability CVE-2025-40909 in an isolated Docker container running Perl v5.34.0.
The CFP is closed, but in order to attend the PCC virtually, please follow this link, https://www.meetup.com/austin-perl-mongers/events/305855419/.
We are asking for a $30 donation at sign-up, but you may email science@perlcommunity.org to inquire about a discounted or free code we have for non-profits and those in between jobs.
To sign up for our low-volume email list to get information about upcoming events, click here.
All three of us attended.
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.