|
Perl Weekly
Issue #790 - 2026-09-14 - Perl and CPANSec
latest | archive | edited by Mohammad Sajid Anwar
|
|
Hi there,
An effort is made by people who either maintain the security of software languages behind the scenes and whose work is not visible to the general public. In the case of Perl and the CPAN, the organisation to watch over the matter is known as CPANSec, a group created to oversee the activities connected with the detection and remediation of risks in a large number of different open-source software components. Instead of isolating from other professionals in this area, the CPANSec acts as a channel of communication between the software developers carrying out their activities and the representatives of the open-source community at large.
As far as it concerns the importance of the CPANSec group today, it should be mentioned that it adopts a proactive position in relation to solving safety issues connected with software supply chains. When there is a demand for investigating open-source libraries, this organisation comes up with strategies, releases informative materials, and assumes the function of a reference point in case of the mentioned issues.
In the end, CPANSec serves as a valuable reminder that in technology resilience, as important as the code is the people. A culture where safety is default is established by creating transparent reporting rules, reducing the time for disclosure, and raising consultants' awareness about safe coding. Organisations using Perl technology can be assured that CPANSec is vigilant in its role as a guardian.
I met the real people behind the CPANSec when I attended the Perl Toolchain Summit 2025 in Germany. They are doing incredible job. Olaf Alders, recently shared the inside story in this very detailed log post. On a similar note, I came across a tech paper titled: Testing as a Certification Approach shared by Alberto Simões. If you are a CPAN contributor, it is recommended to include SECURITY.md in the distribution. Here is one such, I shipped with PAGI::FastAPI. I noticed others have also started adding this document.
Let's end this on happy note, it is nice to see so many active CPAN contributors. I find it hard to catch up with latest creations. At times, it goes above my head, still high regard to each contributors. You don't need to use it to appreciate the contribution. I love reading others creation, it gives me new ideas and satisfaction. Naming one contributor would be unfair, you already know them. We as a community, should encourage and promote each contributions. There is an online event organised by Gabor Szabor titled Punk: Perl MVC, compiled at boot. Please register if you haven't already done so.
Enjoy rest of the newsletter.
Mohammad Sajid Anwar
|
|
|
Announcements
|
by Olaf Alders (OALDERS)
Olaf has announced that HeroDevs has donated $10,000 to The Perl and Raku Foundation (TPRF), promoting how corporations' contributions support the essential features of community infrastructure, security work such as CPAN Security Group, and maintenance of ecosystem.
|
|
|
by Max Maischein (CORION)
The videos are now online on Youtube. Thanks again to all people presenting their projects and insights.
|
|
by Max Maischein (CORION)
Thanks to some crafty editing by Lee, the lightning talks are also online on Youtube.
|
|
Articles
|
by Andrew Speer (ASPEER)
Andrew makes an interesting breakthrough by using zeroperl to run Perl/PAGI web apps on Cloudflare Workers using WebAssembly. Packing in working demos with WebSockets and D1 database support, it opens up incredible new edge-hosting options for the Perl ecosystem.
|
|
by John Napiorkowski (JJNAPIORK)
John observes protocol design through the appropriate handling of post-disconnection implementation of the receive() function in PAGI. He discusses particular nice cases, real-life failures, and technical shortcomings in order to better illustrate the necessity to find the right balance between strict protocol specifications and reasonable usability for developers. A good read for async Perl developers and all the people interested in low-level web interface specifications.
|
|
|
Grants
|
|
|
|
|
The Weekly Challenge
The Weekly Challenge by Mohammad Sajid Anwar 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 Marc Perry.
|
by Mohammad Sajid Anwar (MANWAR)
Welcome to a new week with a couple of fun tasks "Array Median" and "Arrange Box". 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.
|
|
|
by Mohammad Sajid Anwar (MANWAR)
Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Decode String" and "Order Characters" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.
|
|
|
by Bob Lied
This article provides an example of efficient coding methods for solving problems. It points out how stepping back can lead to tidy solutions in Perl. Bob presents simple and efficient solutions to two problems, using regular expressions to solve nested string decoding and applying a depth-first search method to a string reordering problem.
|
|
|
by Jaldhar H. Vyas
Jaldhar writes a very neat post that combines solid engineering with solid algorithmic thinking. His approach in Task 1 uses stacks to deal with nested encodings without the cost of recursion, and his insight for Task 2 that k > 1 simply reduces to sorting means he has turned a difficult state-space problem into an efficient O(n log n) solution.
|
|
by Jorg Sommrey
This article is an exceptionally informative technical paper that raises conventional algorithm solving to an entirely different level. The fact Jorg has proven that moves for k > 1 cover symmetric group Sn enables them to avoid lengthy graph search state spaces and perform optimal O(n log n) character sorting, together with very concise implementations in both Perl and J.
|
|
by Luboš Kolouch
This blog post is an outstanding and organised guide to the solutions for the Perl Weekly Challenge containing idiomatic coding and sound algorithmic reasoning. Lubos uses brief explanations to clarify complex problems and produce clear, fast code that the Perl community can use as a guide.
|
|
by W Luis Mochan
The post is noteworthy in the light of it's neat and crisp demonstration of the brilliance of Perl as a programming language by way of presenting a tricky logic problem as a format of a few short functional lines of code. The solutions presented by him is characterised by use of regular expression substitutions with iterative processing using the /e flag together with the List::Util::minstr module that uses an algorithm based on the principle of recursion.
|
|
|
by Packy Anderson (PACKY)
Packy presents an exceedingly coherent and practical example of resolving string-manipulating and character-ordering issues in various languages in this article. It gives a clear insight into specific behaviour of regex in particular languages, particularly comparing how string interpolation works in Raku and where quotemeta is applied in Perl. This makes it a very educational article for multi-language developers. He also demonstrates good skills in iterative pattern matching as the implemented solutions are simple and comprehensible and allow to outline advantages of each particular programming language.
|
|
|
by Peter Campbell Smith
The contribution of Peter in Week 390 presents a creative stack-based technique which brings the conventional regex-replacement process for string decoding to a new level. The method uses a stack to keep track of the active multiplication factors and thus it demonstrates efficient state management.
|
|
|
by Reinier Maliepaard
Reinier's article on Perl Weekly Challenge 390 elaborates a simple and systematic answer to the task "Decode String." The post is notable for a clear, idiomatic Perl implementation that makes the process of string expansion very easy to understand.
|
|
by Roger Bell West (FIREDRAKE)
This article offers a detailed and interesting presentation of Weekly Challenge 390. Roger presents his innovative switch from regex-based compression in Perl to depth-first search-based state-space search in Rust and PostScript in an excellent way. Moreover, Roger's clever way of using sorted BTreeSet builds a strong algorithmic approach throughout programming languages.
|
|
by Simon Green (SGREEN)
In his post, Simon lays out a well-organised and clear explanation of Weekly Challenge 390 through the use of Python. His clever application of re.sub with a custom callback function simplifies the process of dealing with nested brackets in the string decoding assignment. Furthermore, Simon's use of a recursive search through state space, with visited set memoization, is instrumental in solving the challenge of ordering characters such that their arrangement is the lexicographically smallest one.
|
|
|
Rakudo
|
|
|
Weekly collections
|
|
|
Events
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
You know, you could get the Perl Weekly right in your mailbox. Every Week. Free of charge!
|