Roles in Perl


Roles in Perl, implemented in native form with zero dependencies. Check out where the discussion ends up in the post below:
https://theweeklychallenge.org/blog/roles-in-perl

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.

[P5P posting of this summary]

Science Perl Journal DOIs are now live! Update on videos and next Issue of the SPJ

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:

ANN: Perl.Wiki V 1.29. jsTree version V 1.00. CPAN::MetaCurator V 1.00

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.

Unary Operator


The unary + operator is one of the most commonly used operators in Perl. Below is a post detailing a recent situation where I encountered it:
https://theweeklychallenge.org/blog/unary-operator

XS the easy way

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);

This week in PSC (198) | 2025-07-04

All three of us attended.

  • We reviewed the perldelta entry for the CVE-2025-40909 patch, which has so far been blocking the security point releases. We reasoned out previous tentatively assumed necessary improvements to the text and ended up rejecting them and concluding that the text is perfectly adequate. The point releases can now go ahead.
  • Philippe reported on the experience with the release process and thoughts on how to improve it and the release guide. Main takeways are that it would be useful to have a single source of truth for the version of Perl (e.g. for 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 initiated transition to next PSC and discussed preparations for passing on an agenda for continuity.

[P5P posting of this summary]

Remembering Matt Trout

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 using CHI


Caching using CHI.
Please check out the link for more information:
https://theweeklychallenge.org/blog/caching-using-chi

Raku Quiz

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.

A pipe operator exists on perl v5.42?

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::").

MetaCPAN running really well. Thanks!

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.

CVE-2025-40927


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

This week in PSC (200) | 2025-08-27

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.

  • We discussed our structure for PSC meetings and our learnings about it from last cycle. We briefly introduced Leon to it and went over the onboarding checklist.
  • We discussed roadmap items from the last cycle that did not get done, such as getting TLS in core. No decisions were taken as they will be for the new PSC to make.

[P5P posting of this summary]

Attending the Perl Community Conference (Hybrid) July 3-4

summerppc2025.png

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.

TPRC Greenville 2025

I had the pleasure of attending The Perl & Raku Conference (TPRC) 2025 in Greenville, SC as a volunteer. As always, opinions are my own.

The Conference

The conference went quite well. Unfortunately, a major weather event disrupted flights across the US, particularly around Atlanta, causing travel issues for some attendees and speakers. This led to a few talk cancellations.

We adopted it by consolidating the two talk tracks into one. There was still a diverse range of topics, and judging by the audience reactions, some of the talks were very well received.

The conference was attended by 40-50 people.

venue.jpgMain Room

The Venue

The event was hosted at a Holiday Inn Express in Greenville, which turned out to be an excellent choice. The hotel was clean, recently renovated (following flood repairs last year), and very reasonably priced: $139 + tax per night for a suite. The staff were quite friendly and accommodating. It also proved to be a great low-cost venue for hosting a conference - more on that below.

Caching using Memcached


Caching in Perl using memcached.
Please check out the link for more information:
https://theweeklychallenge.org/blog/caching-using-memcached

This week in PSC (199) | 2025-08-07

Only Graham and Philippe attended. We coordinated with Aristotle via chat.

We only met to discuss the mailing-list moderation and immediate actions
(which resolved to sending an email to them moderators, and another one
to the list).

We also talked about moderation in general, and got some ideas to discuss
with the next PSC.

[P5P posting of this summary]

Vibe Coding a Perl interface to a C library

I had created the library in C as part of a bigger project to create a multithreaded and hardware (GPU, and soon TPU) accelerated library to manipulate fingerprints for text. At some point, I figured one can have fun vibe coding the interface to Perl. The first post in the series just dropped ; it provides the background, rationale, the prompt and the first output by Claude 3.7. Subsequent posts will critique the solution and document subsequent interactions with the chatbot.
Part 2 will be about the alienfile (a task that botched by the LLM). Suggestions for subsequent prompts welcome ; as I said this is a project whose C backend (except the TPU part) is nearly complete, so I am just having fun with the Perl part.

Last Call for Papers, Perl Community Conference (Hybrid)

summerppc2025.png

Paper and talk submissions will be accepted until July 01, 2025 18:59 CDT

In particular I'd like to invite anyone who regrets not submitting a talk to the TPRC or who has gotten bit by the speaking bug. You are welcome to give your talk remotely.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.