This week in PSC (183) | 2025-03-20
We didn’t have a meeting last week. This week, everyone was here.
- We briefly talked about
builtin
. We think anumify
function is quite necessary. - We started reviewing release blockers for v5.42.
We didn’t have a meeting last week. This week, everyone was here.
builtin
. We think a numify
function is quite necessary.An introduction to newbie in Perl.
Please checkout the post for more information:
https://theweeklychallenge.org/blog/welcome-to-perl
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This first post introduces the fundamentals of creating an perl object from XS.
I had written a Math paper which was not good enough to be published in a journal, yet I wanted to have proof of the date I wrote it on so I could post the paper on the web without other people later being able to question who first came up with the idea.
The way I thought was more correct to do this was to publish the paper's sha256 checksum on the Bitcoin blockchain. Posting the SHA on social media (such as x.com) was not enough, as paid members can edit their old posts.
I got in touch with BBRTJ, the maintainer of Bitcoin::Crypto, who was very helpful in teaching me how to use his module and achieving my aim.
The goal, he told me, was to include the SHA256 checksum as the comment (technically the 'NULLDATA') of a small bitcoin transaction.
I'm resigning from the board position at TPF (The Perl Foundation) also known as TPRF (The Perl and Raku Foundation).
tl;dr
After eight years with the foundation board, the time has come for me to step down. While I'm leaving the board, I intend to remain an active member of the Perl community and continue contributing in meaningful ways for Perl users and developers. You'll still see me at various Perl events; and perhaps Raku ones, too.
Over the years, I've learned a great deal, (hopefully) made a positive impact, and had a lot of fun.
Why I'm stepping down #1. The board needs a refresh
As I've noted before, having long-term board members at a nonprofit has advantages and disadvantages. My resignation opens the door for new perspectives and ideas. The foundation's board has started searching for backfill, which is good for the board's long-term success.
Handling of undef / false default values in Perl v5.38
Please checkout the post for more information:
https://theweeklychallenge.org/blog/subroutine-signatures
People usually don't think about Perl's type system. Some would even mistakenly claim it doesn't have one. It is, however, a most unusual one that doesn't really look like anything else.
What is a type anyway? And what is a type system? I'm not going to precisely define it here, that's for academics, but generally speaking a type is a fundamental property of a variable or value that determines what operations can and can not be done with it and what invariants it must hold. In a strong type system it is a stable trait: it can't change over the lifetime of the value/variable.
In some type systems containers are typed (such as C) and values really don't exist separate from containers. In other typed systems containers are typeless but values are typed (e.g. Python, Javascript, ). There are languages where both values and containers are typed (e.g. Java, C#), typically this means that the container constrains the values in it.
Contrary to what you might expect, Perl has the latter sort of typesystem, but with a twist.
FOSDEM 2025 is just around the corner, and you know what that means—great talks, amazing people, and of course… fantastic food! 🥂
The Perl and Raku Foundation (TPRF) is once again bringing the community together for a special dinner during the FOSDEM weekend. If you’re an active member of the Perl and Raku ecosystem, this is your chance to relax, connect, and celebrate with fellow developers, contributors, and enthusiasts.
📅 When? Saturday Evening, during FOSDEM weekend
📍 Where? A great venue in Brussels (details will be shared with registered attendees)
💬 Who? Active community members, contributors, and Perl/Raku enthusiasts
We are very happy to announce that OTOBO supports the German Perl Workshop!
Die Rother OSS GmbH ist Source Code Owner und Maintainer der Service Management-Plattform OTOBO.
Gemeinsam mit der Community entwickeln wir OTOBO kontinuierlich weiter und sorgen dafür, dass das Tool zu 100 % Open Source bleibt.
Unsere Kunden unterstützen wir mit partnerschaftlicher Beratung, Training, Entwicklung, Support und Managed Services.
Environment variable PERL_RAND_SEED in Perl v5.38
Please checkout the post for more information:
https://theweeklychallenge.org/blog/random-in-perl
Back to the full roster.
There are several competing philosophies for wrapping external C libraries. One is that the XS module should hide all the details of the library and provide a clean “Perlish interface”. The opposite extreme is that the external C functions should be exposed to Perl using an extremely minimal XS layer, or the Foreign Function Interface (FFI) and all the logic for working with the library should be written in Perl.
I advocate something in the middle. I think that a good interface should expose as much of the low-level as possible (to make the most usage of that library possible by other Perl modules) while “padding the sharp edges” so that it is difficult for Perl-side usage to crash the program. Higher level features can be provided in addition to the low level API via XS, Perl modules, or both.
Special variable ${^LAST_SUCCESSFUL_PATTERN} in Perl v5.38
Please checkout for more information in the post below:
https://theweeklychallenge.org/blog/perl-regex
Three of us again. Aristotle had limited time, Philippe and Graham stayed longer.
Adding a SECURITY
or SECURITY.md
file to your Perl distributions will let people know:
The contact point is very important for modules that have been around for a long time and have had several authors over the years. When there is a long list of maintainers, it's not clear who to contact.
You don't want people reporting security vulnerabilities in public on the RT or GitHub issues for your project, nor do you want a post on IRC, Reddit or social media about it.
If your software is on GitHub, you can set up private vulnerability reporting. GitLab has a similar system.
Otherwise, a single email address is acceptable. An alias that forwards to all of the maintainers or at the very least, a single maintainer who has agreed to that role will work.
I know, thinking about where to put what in a code file sounds lame to most artisan hero's that fly by intuition, but I find it actually helpful. Here my article about it on dev.to and you can tell its written with Perl in mind. I just wanted to publish outside to reach more people and maybe even bring some in.
Please find my learning experience in the post below:
https://theweeklychallenge.org/blog/terraform-docker
So, what exactly is a Readonly variable in Perl? A readonly variable is one that, once assigned a value, cannot be changed. Any attempt to modify it will trigger a runtime error. This mechanism enforces immutability, ensuring that critical values remain untouched and are protected from accidental or unauthorised alterations.
All three of us attended. Other than administrivia we talked about formally documenting our supported platforms, and we intend to start a discussion on the mailing list about this soon. This is also a topic for the upcoming Perl Toolchain Summit.
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.