Geizhals Preisvergleich supports the German Perl Workshop 2026

We are happy to announce that Geizhals Preisvergleich supports the German Perl Workshop 2026.

Geizhals Preisvergleich zählt zu den größten Produkt- und
Preisvergleichsplattformen im deutschsprachigen Raum.

Introducing Marlin

Does the Perl world need another object-oriented programming framework?

To be honest, probably not.

But here’s why you might want to give Marlin a try anyway.

  • Most of your constructors and accessors will be implemented in XS and be really, really fast.

  • If you accept a few basic principles like “attributes should usually be read-only”, it can be really, really concise to declare a class and its attributes.

This week in PSC (209) | 2025-12-15

The stars aligned and all three of us managed to get together.

We mostly talked about PPCs, both in the general shape of the process, and specifically the latest proposal, PPC0034.

  • Given how the PPC process has worked out in practice, we discussed how much sense it makes and whether it solves a problem we actually have. We agreed that the steering council - and Perl overall - would still benefit from having some sort of declared process by which people can suggest and discuss new features, as separate from implementing them.
  • The process at the moment doesn’t align very well with existing practice; at the same time, existing practice is not particularly structured. Rather than trying to define a new process, we think it better to clarify the documented process to more obviously match what we actually do, and try to iterate that way.
  • PPC0034 is concerned with refalias parameters in signatures. Both the refalias and declared_refs features are still currently marked as experimental, though it is not immediately clear in their overview tickets why. We should clarify the status of these before we fully commit to PPC0034.
  • That aside, the overall document of PPC0034 seems good and we’re happy to merge it as a basis for ongoing experiment and a trial implementation.

[P5P posting of this summary]

LPW 2025 - Event Report


I attended the London Perl & Raku Workshop 2025 last Saturday. Please find the detailed event report: https://theweeklychallenge.org/blog/lpw-2025

Live streaming the Perl 5.43.7 development release

I was on the schedule for 2025, but by swapping the release version, I skipped doing a release in 2025. This year, I'm doing the dev release live stream again on Twitch, for version 5.41.7.

And again, you can watch it live on Monday 19th of January on Twitch.

You can expect to watch me talk through the steps of the Perl
Release Managers Guide and if you join the Twitch chat, or
#p5p on irc.perl.org, we can chat a bit.

I assume I'll start Monday at 16:00 UTC (17:00 CET), and the whole thing will
take around 4 hours unless there are some major mishaps. In the middle, I'll join a call of the organizers of the German Perl Workshop 2026 in Berlin, where we will likely go through organizing the social event and the preconference meeting.

ANNOUNCE: Various updated wikis, including Perl.Wiki

Get them from My Wiki Haven and Symboliciq.au . Details:
  • Perl.Wiki V 1.35
  • Mojolicious Wiki V 1.10
  • Debian Wiki V 1.11
  • (New) PHP Wiki V 1.01
  • Symbolic Language Wiki V 1.18 (at symboliciq.au)

GitHub and the Perl License

When we publish our Perl module repository on GitHub, we might notice something peculiar in the "About" section of our repository: GitHub doesn't recognize the Perl 5 license. This can be a bit confusing, especially when we've explicitly stated the licensing in our LICENSE file.

Without properly defined license, GitHub ranks the quality of a repository lower. This is also unfortunate because it limits the "searchability" of our repository. GitHub cannot index it according to the license and users cannot search by license. This is today more important than ever before as many enterprises rule out open source projects purely on the grounds that their license is poorly managed.

The Problem: Two Licenses in One File

The standard Perl 5 license, as used by many modules, is a dual license: Artistic License (2.0) and GNU General Public License (GPL) version 1 or later. Often, this is included in a single LICENSE file in the repository root.

This week in PSC (208) | 2025-11-25

All three of us met.

  • The refalias draft PPC on the mailing list is looking good. We encourage Gianni to turn it into a full PPC doc PR
  • We still would like more automation around making real CPAN distributions out of dist/ dirs. Paul will write an email requesting assistance on that subject specifically
  • Briefly discussed the subject of the meta module handling signatures with named parameters. Further discussion will continue on the email thread.

[P5P posting of this summary]

How to Find Perl Developer Jobs in 2025: A Complete Roadmap


The tech world changes quickly, but some tools stand the test of time. Perl is one of them — a programming language that quietly powers countless systems behind the scenes. While the spotlight often falls on Python or Go, Perl continues to run financial systems, automate infrastructure, and parse massive data sets.

In 2025, Perl developers are still in demand. But finding the right opportunity requires more than typing a keyword into a job board. It’s about understanding where Perl fits today, who needs it most, and how to present yourself as the professional that businesses can rely on.

1. Understand Where Perl Is Thriving

To begin your job search, you first need to understand where Perl is alive and kicking. Contrary to the outdated belief that it’s a “legacy” language, Perl is still critical in several industries.

Finance and banking – Many risk analysis and trading systems were built on Perl decades ago and still rely on it for their daily operations.

Wiki Haven: Digital.Security V 1.20, Mojolicious V 1.09, Perl V 1.34

Get them from the usual place.
And no, I have still not had time to update CPAN::MetaCustodian so that it properly parses these wikis. But that time is approaching...

Grafana + Prometheus


For all DevOps enthusiasts, here is a quick introduction to Grafana and Prometheus.
Please check out the link for more information:
https://theweeklychallenge.org/blog/grafana-prometheus

This week in PSC (207) | 2025-11-17

Just Paul and Leon this week. We discussed:

  • The newly-added signature_named_parameters experiment needs adding to perlexperiment.pod, and experimental.pm. Hopefully before 5.43.5 release on Thursday
  • The experimental dist would be easier to manage if it lived in dist/, but it would also be nice if we had more automated tooling to create real CPAN distribution tarballs out of those directories. Would help for making Module-Corelist updates every month as well.
  • We await a full write-up of a PPC document following on from the “refalias in signatures” Pre-PPC discussion

[P5P posting of this summary]

Speakers Wanted! Dec. 17-18 PCC Winter 2025

We have 7 high quality and exciting talks, we're looking for many more - as many as we can back into 2 days. Virtual presentations are accepted.

event-flyer.jpg




German Perl/Raku Workshop 2026 in Berlin - 16.03.2025-18.03.2025

(English below)

Hallo zusammen,

wir laden Euch herzlich ein
zum Deutschen Perl/Raku Workshop 2026.

Der Workshop findet nächstes Jahr vom Montag 16. März bis
Mittwoch 18. März in der Heilandskirche in Berlin. statt.

Die Webseite und der Call for Papers sind bereits online. Wir freuen uns auf viele interessante
Vorträge!

Über Unterstützung durch Sponsoren freuen wir uns immer. Wenn Ihr bzw. Eure
Firma den Workshop unterstützen möchtet, wendet Euch gerne an uns. Wir finden gemeinsam sicher eine Möglichkeit!

Wenn Ihr Fragen an die Organisatoren habt, erreicht Ihr uns am besten
direkt unter orga2026@german-perl-workshop.de .

Wir freuen uns auf Eure Teilnahme,
Max Maischein für die Organisatoren und Frankfurt.pm

Wir arbeiten noch an
Hotelempfehlungen und veröffentlichen diese auf der Webseite.

---

Hello everybody,

we cordially invite you
to the German Perl/Raku Workshop 2026.

The workshop will take place next year from Monday 16th May to
Wednesday 18th March in the Heilandskirche in Berlin..

The website and the call for papers are already online.
We are looking forward to many interesting
presentations!

A polymorphic quine

I thought it might be fun to write a "polymorphic virus", but that would involve learning executable file formats and machine code, which sounds like a lot of effort. So instead I went for the next best thing: Perl instead of machine code, and self-replicating code in the form of a quine rather than "infecting" other executables.

When you run this code, it will output a new version of itself, which you can run again to get another version, etc. Unlike a regular quine, which will produce an exact copy of its source code, this program is polymorphic: Its output is functionally identical to the original, but the code might look completely different. This is just a proof-of-concept, but it does try to introduce variations in all parts that a simple static scanner might use for detection (such as signatures in an antivirus). There are still fixed parts, but they're small and generic (such as ; or =) and can be found in most any perl script.

(my $Edw70Kp = "|ygn`hjs\nmo\\yjc]eyuy}YUl[h^y:YWyw\nmo\\ym`gnyu\nyyyygsy\"}mnl#y7y:Y5\nyyyyl_nolhymjlchn`\"{p~p^{&y}mnl#\nyyyyyyyyc`yl[h^\"#y6y*(,5\nyyyy}mnly7xymu\"UXy'xW#v\"U{V}V:VVW#wu\nyyyyyyyy^_`ch_^y},y9y{VV},{y4\nyyyyyyyy}+y_ky{Vh{y9y{VVh{y4\nyyyyyyyymjlchn`\"{VVr~*,r{&yil^y}+#\nyyyyw_a5\nyyyy!{!y(y}mnly(y!{!\nw\n\ngsy}p[ly7y!}!y(ydichy!!&yjc]e\"![!y((y!t!&y!;!y((y!T!&y!Y!#&yg[jyjc]e\"![!y((y!t!&y!;!y((y!T!&y!Y!&y!*!y((y!3!#&y'-y((yl[h^y++5\ngsy\"}ip[l#y7y}?^q1*Ejy7xy)7yV}\"Vq%#y7)5\n}?^q1*Ejy7xym)V}}ip[lV\\)}p[l)a5\n\ngsy}h_rny7yjc]e\"!!&y!gsy!&y!ioly!#y(y}p[ly(y!y!y(yjc]e\"!7!&y!(7!&y!vv7!#y(y!y!5\n\nc`y\"l[h^\"#y6y*(/#yu\nyyyygsy}ey7ydichy!!&yg[jyuy]blyl[h^y,/0ywy+y((yf_hanb\"}?^q1*Ej#5\nyyyy}h_rny(7ym`gn\"}e#y(y!yXy!y(ym`gn\"}eyXy}?^q1*Ej#5\nwy_fm_yu\nyyyygsy}lmy7yil^y{y{5\nyyyygsy}l_y7yil^y{x{5\nyyyygsy}lqy7y}l_y'y}lm5\nyyyygsy}^y7y+y%ychnyl[h^\"}lq#5\nyyyy\"gsy}^j_`y7y}?^q1*Ej#y7xym)\"Uy'xW#)]bl\"\"il^\"}+#y'y}lmy%y}lqy%y+y'y}^#y~y\"}lqy%y+#y%y}lm#)_a5\nyyyy}h_rny(7ym`gn\"}^j_`#5\nyyyygsy}hy7y]bl\"}lmy%y}^#5\nyyyy\"gsy}gy7y}h#y7xynl)z'xy)y'x)5\nyyyym)\"UV)V'VVW#)VV}+)ay`ily}g&y}h5\nyyyy}h_rny7y{\"}h_rn#y7xy{y(yjc]e\"!nl!&y!s!#y(y{)y'x)}h'xy'}g){5\nw\n}h_rny(7y!5y!5\n\n}h_rny(7yjc]e\"{_p[fy}p[l{&y{m)X)}p[l)__{#y(y{Vh{5\n\njlchny}h_rn5\n") =~ tr/ -~/&-~ -%/; eval $Edw70Kp

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

Increasing Code coverage with Gemini

On my last post I asked Gemini to create a product requirement document to outline a plan to improve the overall state of the ev-calc-pricing application. In this blog entry I will discuss my interaction with Gemini and how it increased code coverage of the ev-calc-pricing application. Below is an example of the prompts:


----
> review PRD.md for @ev-calc-pricing

╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ ReadFile PRD.md │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ The PRD.md outlines a plan to refactor the ev-calc-pricing application to improve maintainability, data accuracy, and
robustness.

Key issues identified:
* Manual, hardcoded electricity rate data in StateRates.pm.
* Minimal test coverage.
* Unused scripts and lack of input validation.

The plan focuses on four epics:
1. Automated Data Pipeline: To fetch, process, and load electricity rate data automatically.
2. Comprehensive Test Suite: To ensure accuracy and stability of calculations and data loading.
3. Code Refactoring and Cleanup: To remove hardcoded data, unused scripts, and consolidate data files.
4. Enhanced User Experience: To add input validation and better user feedback.

I made a multiple-insert as well as other methods for Mojo::Pg

The code is in this gist

insert_multi_p will let you insert multiple rows in Postgres with a single query, like this:

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.

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.