This week in PSC (206) | 2025-11-03

Just Paul and Aristotle again.

We discussed the unlimited statement modifier chaining proposal. Both of us thought that unlimited chaining is a bad idea, though we agreed that being able to combine one loop and one conditional would on rare occasions make things slightly nicer. However we also agreed that in terms of conceptual complexity, only either allowing arbitrary chaining or disallowing chaining entirely is justifiable, as opposed to specifying and implementing rules to permit it but only in certain specific cases, especially considering the marginal benefit. So we settled on agreeing with Larry’s original design decision to disallow them.

[P5P posting of this summary]

AWS S3 Bucket Events


Back to my favourite topic AWS, today I am exploring AWS S3 Bucket Events.
Please check out the link for more information:
https://theweeklychallenge.org/blog/aws-s3-bucket-events

ANNOUNCE: Perl.Wiki V 1.33 & Mojolicious.Wiki V 1.08

Get at the usual place...
Elsewhere, I've moved house, into a retirement village.
Yes, folks. I'm 75, much to my horror and astonishment.
It was an exhausting process, but I'll settled in now. And still programming!
And not just the wikis. I have various other projects I can get back to now I've moved.
Why move?
Because I downsized. The price difference gives me a little bit of money in the bank.

The Good, Bad and Ugly Perl and Gemini Cli

In the last few months I have been learning Flutter and Dart and recently I saw a youtube video from our very own Perl Wizard Randal Schwartz ( Vibe-coding with Gemini CLI ) where he is exploring the use of Google Gemini to vibe code Flutter applications. Gemini Cli is a command line tool that gives you the power of Gemini AI right in your command line prompt. In the beginning of Randal's adventure with Gemini he wrote this AI prompt "review the app @youtube_watcher. Tell me the Good, the Bad and the Ugly." and AI delivered a very detailed response on what is and isn't working within the application.

After seeing this very detailed report I decided to do the same on ev-calc-pricing a perl dancer project I worked on and I was amazed to see Gemini work on a perl dancer project. At this point I realize that Gemini is capable of assisting coders in any language/ framework and it can provide insight on software engineering best practices for you application.

This week in PSC (204) | 2025-10-13

All three of us attended.

  • We touched on the recent discussion about the classification of modules included with the perl distribution. We agreed that the PSC and p5p need to do a better job of tracking which modules have active maintainers and who they are. Something like a dashboard would be useful for this, and we identified as a starting point that it would be good to have an up-to-date overview of dists, their maintainers, and whether they are active. Maintainers.pl probably already covers the list of dists but it would be useful to split the data out into a separate file so it could be used in other scripts, which could also populate records with additional data, outside of what Maintainers.pl needs, for their own purposes. For example a tool for querying PAUSE for the maintainers of dual-life dists and flagging deviations could check a custom field where known deviations (along with a comment) would be recorded, so as to not flag them.
  • We had a somewhat surface-level discussion about the future of stdio in Perl. Leon has been thinking about this and intends to write a separate mail to p5p about it.

[P5P posting of this summary]

OpenAPI::Linter


One more contribution, OpenAPI::Linter to validate and lint OpenAPI Specification. For more information, please follow the link:
https://theweeklychallenge.org/blog/openapi-linter

ANNOUNCE: Wikis: Perl V 1.32 & Debian V 1.10 & Mojo V 1.07

Available from the Wiki Haven.
I have still not had time to update CPAN::MetaCustodian, so it does not yet work correctly with the latest version of Perl.Wiki.html.

Annual Russian Perl Conference 2025

The annual Perl-Conf.Ru/25 will take place in Moscow on September 27, 2025 — a special date marking the birthday of Perl's creator, Larry Wall!

The conference will bring together the Perl community to share experiences and discuss current trends in development. The program includes reports on modern tools and practical approaches to solving complex problems.

The talks will cover:

  1. Test2: life after Test::More
  2. Turbo Perl: batteries debugger included
  3. Writing typemap for passing structures to XS
  4. Perl & Postgres: the hard way, because it's easier

Registration and Details: https://perl-conf.ru/25

This week in PSC (205) | 2025-10-28

Only Paul and Aristotle this time.

We had a small amount of helpful feedback on the named signature parameters PR. Paul wants to merge by the end of the week for the purposes of inviting more feedback, assuming no issues are raised in the meantime.

[P5P posting of this summary]

YARA Malware Scanner


Introducing YaraFFI, minimal Perl FFI bindings for the YARA malware scanning engine.
For more information, please follow the post below:
https://theweeklychallenge.org/blog/yara-malware-scanner

A Quiz about Operator Priorities

#!/usr/bin/perl

use 5.36.0;

# ------------------------------------------------

say 'Does priority say we print 2b or ! 2b?';

my($action_types) = qr/PAYMENT|SETTLEMENT|TRANSFER/o;

say "Action types: $action_types";

for my $action (qw/PAYMENT REFUND/)
{
say "Action: $action";
say "Case: 1. $action (1a): ", $action =~ $action_types ? 'Present' : 'Absent';
say "Case: 2. $action (2a): ", "$action (2b): " . $action =~ $action_types ? 'Present' : 'Absent';
say "Case: 3. $action (3a): ", "$action (3b): " . ($action =~ $action_types) ? 'Present' : 'Absent';
say "Case: 4. $action (4a): ", "$action (4b): " . ( ($action =~ $action_types) ? 'Present' : 'Absent');
say "Case: 5. $action (5a): " . ($action =~ /$action_types/ ? 'Present' : 'Absent');
say '';
}

Vibe coding a Perl interface to a foreign library - Part 3

After a very long hiatus due to the triplet of work-vacation-work, we return to Part 3 of my AI assisted coding of a Perl interface to a foreign library.
I will not repeat the post on my Github pages Github pages, or the documentation of my MetaCPAN package Bit::Set which features a "vibecoding" section.
However, I would like to share the take home points from my exercise:

  • I found the agentic bots to not be very helpful, as they entered these long repetitive and useless reflections without being able to fix the problems they identified when the build of `Bit::Set` failed.
  • The "Ask" mode chatbots could generate lots of code, but with subtle mistakes.
  • Success with porting test suites from one language to the other was highly variable, ranging from near perfect to outright refusal to execute a difficult task.
  • On the other hand, the chatbot was excellent as an auto-complete, often helping me finish the structure of the POD and putting together the scaffold to fill things in.

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]

bless vs Class::Mite


Class::Mite is getting better relatively as numbers shown in the post below: https://theweeklychallenge.org/blog/bless-vs-class-mite

Call for Papers & Participation - Perl Community Conference, Winter 2025

We are moving full steam ahead. The Journals are not so easy to put out 2x a year we are finding, but the editing process for Issue #2 is moving ahead nonetheless. We are now collecting papers for inclusion for Issue #3. But our hybrid conferences are proving to be very successful endeavors. We hope you will consider submitting a Science Track paper or regular Perl talk to this 2 day hybrid conference in sunny ole Austin, TX, USA.

See more:

https://science.perlcommunity.org/spj/announcement/view/9

Updated wikis: Perl, Mojolicious, CSS and JS, Debian and Digital Security

Get them at the usual place...

This week in PSC (203) | 2025-09-29

We finally managed to arrange our first regular meeting between the three of us.

  • Largely we discussed strategy for the named parameters branch. We agreed to merge soon (so people start playing with it), just staying ready to back it out well before release, in case it proves not to be ready.
  • In that context, we considered the situation with experiment warnings. We agreed that named parameters should be an additional experiment of its own, though it is an adjunct of another experiment – and we do not yet have established ways of dealing with such a situation. We want to think about how our experiment mechanism should be extended to cover such cases.

[P5P posting of this summary]

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

Finally fixed a two-decade bug in my File::Finder CPAN module

Twenty years is a long time in the world of software. That's how long it's been since I last updated my Perl module, File::Finder. But today, thanks to a bug report from a dedicated user, I'm excited to announce the release of version 1.0.0!

For those who don't know, File::Finder is a handy little module that gives you the power of the find command right in your Perl code. It turns out that it wasn't playing nicely with Windows, and it was high time to fix that.

It's a surreal and wonderful feeling to revisit code you wrote two decades ago and find that it's still useful to people. It's a testament to the power and longevity of Perl and the open-source community.

A big thank you to the user who took the time to report the bug and help me bring this module into the modern era. It's moments like these that make you appreciate the collaborative spirit of software development.

You can find the new, Windows-friendly version of File::Finder on CPAN.

#Perl #CPAN #SoftwareDevelopment #LegacyCode #OpenSource #ThrowbackThursday

[this message written with the assistance of Gemini CLI inside VSCode]

new GTC Architecture

Graphic::Toolkit::Color 1.9 brought several big new features which I will write about when 2.0 comes out - just to sum up what changed since 1.0. This time I want to describe the internal changes, since this release completed an in-depth rewrite. So this will be about software engineering, architecture and coding style. TLDR: simple, clear, DDD, OO by composition and arg and a color space DSL!

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.