DEV Community

Gabor Szabo
Gabor Szabo

Posted on • Originally published at perlweekly.com

Perl πŸͺ Weekly #753 - Happy New Year!

Originally published at Perl Weekly 753

Hi there!

There was not a lot of action this week, but I had a live session on contributing to a Perl project and then another one contributing to a Python project. There were more guests at the Python event, but we were more productive during the Perl event. Partially as the packaging and dependency management system of Perl is more standardized than that of Python. Who would have thought :-)

I've scheduled a new event to contribute to a Perl module. I really hope that these sessions will encourage more people to start contributing. First relatively small things and then as we run out of the smaller things we can work on more difficult tasks.

If you are looking for a New Year's resolution here is a challenge: Make one contribution to an open source project every week! At the last event I organized we sent 4 Pull-Request in 1.5 hour. If you have not contributed yet then at first it might take a bit longer for you, but with some practice you can make some contribution within an hour. So one hour every week for the next 52 weeks. Here is an issue on GitHub where you can mention your work. That will help all of us to keep doing it.

Oh and if you are looking to explore new, web-related development in the Perl ecosystem, I'd suggest you take a serious look at PAGI

Enjoy your week and have a healthy and fruitful New Year!

--
Your editor: Gabor Szabo.

Announcements

New App. OPC-UA Pipe Gateway

opcua_pipe_gateway is an OPC-UA client that allows reading and writing OPC-UA variables via command line interface, using STDIN for commands and STDOUT for results. The application is available in two implementations: a Perl version (opcua_pipe_gateway.pl) and a Python version (opcua_pipe_gateway.py).

ANNOUNCE: Perl.Wiki V 1.36


Articles

Supercharge Event Loops with Thread::Subs

There are two issues with event loop coding, related to the need to maintain an asynchronous, non-blocking style: It's harder to write and maintain than linear, blocking code. Despite all the asynchronous behaviour, it's still single threaded.

Anyone actually use LinkedList::Single?

There is a new release, but is it just an exercise in rewriting code, or is it used?

JSON::Schema::Validate example

We used this example during an online session. I would want to continue playing with the module and possibly sending PRs, but unfortunately the ones I already sent have not been accepted yet.

NOAA::Aurora for Space Weather Forecasts

Dimitrios writes: "With the current solar maximum, I wanted to add aurora forecasting features to my iOS weather app, Xasteria. Instead of fetching text files from NOAA, I thought it would be nice for my weather proxy server to handle that. Hence I developed NOAA::Aurora and released it to CPAN."


Discussion

Writing Perl is Vibe Coding

Is it? Or is this a misunderstanding of what Vibe Coding is?

Perl's feature.pm and backwards incompatibility

Shouldn't new features at least emit a warning if they are "overwriting" an existing sub with a new built-in?


Perl Advent Calendar

Bit vectors save space on Santa's list

A Quick Response

Pecan's Tale: Migrating a terminal application from Term::ReadLine to Tickit


Web

Perl PAGI tutorial early access

For anyone interested in helping Joh shakedown PAGI docs in preparation for publishing to CPAN, he'd love feedback on the tutorial.

Perl PAGI Project Update

PAGI (Perl Asynchronous Gateway Interface) is a new web specification and reference server for Perl, designed to bring first-class async/await support to web development. Think of it as Perl's answer to Python's ASGI - a modern foundation for WebSocket, Server-Sent Events, and HTTP applications using Future and Future::AsyncAwait syntax.


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 Lance Wicks.

The Weekly Challenge - 354

Welcome to a new week with a couple of fun tasks "Min Abs Diff" and "Shift Grid". 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.

RECAP - The Weekly Challenge - 353

Enjoy a quick recap of last week's contributions by Team PWC dealing with the "Max Words" and "Validate Coupon" tasks in Perl and Raku. You will find plenty of solutions to keep you busy.

Max Validate

The blog post provides high-quality, idiomatic Raku code. It successfully solves the programming challenges while acting as an effective demonstration of Raku's expressiveness and unique programming paradigms. The solutions are practical, well-explained, and ready for use.

To each (array) his own

Bob Lied's solutions represent high-quality, thoughtful Perl programming that balances elegance, performance, and maintainability. The dual implementation approach for Task 2 with accompanying benchmarks shows a deep understanding of Perl's performance characteristics.

Perl Weekly Challenge: Week 353

Jaldhar provides concise, one-liner-inspired solutions for both challenges, with a focus on achieving the result in a single line of code for Raku and a similar spirit for Perl.

waiting for Santa...

The primary strength is demonstrating the same logic implemented idiomatically across very different paradigms. This is highly educational. The solutions are not overly golfed.

Perl Weekly Challenge 353

Solutions are technically impressive, highly original, and demonstrate expert-level Perl mastery. The functional style, robust error handling, and sophisticated use of zip make these solutions outstanding from an engineering perspective.

Validate to the Max

Matthias provides exceptionally well-considered and pedagogically rich solutions that focus heavily on code design, readability, and the thoughtful evaluation of Perl idioms, TIMTOWTDI. Solutions are characterised by a deliberate choice of clarity and maintainability over mere conciseness, backed by explicit reasoning.

Ok, swing code… SWING!

Packy's core philosophy is to solve the problem once, then port the functional, pipeline-based logic to other languages. This results in consistent, readable, and idiomatic solutions across the board.

Words and shopping

Peter's solutions are methodically crafted, resembling production-grade scripts one might write for a business system. The code is not minimalistic but is instead self-contained, well-documented, and robust, with a focus on teachable insights.

The Weekly Challenge #353

The post presents a detailed plan or pseudocode for solving the problems before showing the final code. The solutions follow a direct, procedural style in Perl. They are correct but emphasize a straightforward implementation over brevity or exploring advanced language features.

Max Validation

Roger provides a brief and focused look at the challenges for blog post, solving them efficiently in JavaScript and Raku. The solutions prioritize solving the problem directly over extensive commentary. Solutions are technically proficient, concise, and modern.

Validating Words

Simon implements both tasks using straightforward, loop-based logic that prioritizes clarity and correct input handling. The solutions are methodical and include explicit checks for edge cases.


Weekly collections

NICEPERL's lists

Great CPAN modules released last week.


Events

Perl Maven online: Live Open Source contribution

January 08, 2025

Boston.pm - online

January 13, 2025

German Perl/Raku Workshop 2026 in Berlin

March 16-18, 2025


You joined the Perl Weekly to get weekly e-mails about the Perl programming language and related topics.

Want to see more? See the archives of all the issues.

Not yet subscribed to the newsletter? Join us free of charge!

(C) Copyright Gabor Szabo
The articles are copyright the respective authors.

Top comments (0)