Perl đȘ Weekly #753 - Happy New Year!
Source: Dev.to
Hi there!
There wasnât a lot of action this week, but I ran a live session on contributing to a Perl project and another one on contributing to a Python project. The Python event had more guests, but we were more productive during the Perl eventâpartly because Perlâs packaging and dependencyâmanagement system is more standardized than Pythonâs. Who would have thought! :-)
Iâve scheduled a new event to contribute to a Perl module. I really hope these sessions will encourage more people to start contributing: first relatively small things, and then, as we run out of the smaller tasks, we can move on to more difficult ones.
NewâYearâsâresolution challenge
Make one contribution to an openâsource project every week! At the last event I organized we sent 4 pullârequests in 1.5âŻh. If you havenât contributed yet it may take a bit longer at first, but with practice you can make a contribution within an hour. So, one hour every week for the nextâŻ52âŻweeks.
Hereâs a GitHub issue where you can mention your work â it will help all of us keep the momentum going.
â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, fruitful New Year!
New App â OPCâUA Pipe Gateway
opcua_pipe_gateway is an OPCâUA client that allows reading and writing OPCâUA variables via a commandâline interface, using STDIN for commands and STDOUT for results.
The application is available in two implementations:
- Perl â
opcua_pipe_gateway.pl - Python â
opcua_pipe_gateway.py
ANNOUNCE â Perl.WikiâŻvâŻ1.36
(no additional content provided)
Articles
-
Supercharge Event Loops with
Thread::Subs
Two issues with eventâloop coding: (1) itâs harder to write and maintain than linear, blocking code, and (2) despite the asynchronous behaviour, itâs still singleâthreaded. -
Anyone actually use
LinkedList::Single?
A new release exists â is it just an exercise in rewriting code, or is it actually used? -
JSON::Schema::Validateexample
We used this example during an online session. Iâd like to keep playing with the module and possibly send PRs, but the ones Iâve already submitted havenât been accepted yet. -
NOAA::Aurorafor 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 developedNOAA::Auroraand released it to CPAN.â -
Writing Perl is Vibe Coding
Is it? Or is this a misunderstanding of what Vibe Coding actually is? -
Perlâs
feature.pmand backwards incompatibility
Shouldnât new features at least emit a warning if they are âoverwritingâ an existing sub with a new builtâin? -
Bit vectors save space on Santaâs list
A Quick Response
(Placeholder â content to be added later)
Pecanâs Tale: Migrating a terminal application from Term::ReadLine to Tickit
(Placeholder â content to be added later)
Web
-
PerlâŻPAGI tutorial â early access
For anyone interested in helping Joh shakedown the 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âclassasync/awaitsupport 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 usingFutureandFuture::AsyncAwaitsyntax. -
The Weekly Challenge (by MohammadâŻSajidâŻAnwar)
The challenge will help you step out of your comfort zone. You can even win $50 by participating; a champion is selected each month from among all contributors, thanks to 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âre new to the weekly challenge, why not join us and have fun every week? See the FAQ for more information. -
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âll find plenty of solutions to keep you busy. -
MaxâŻValidate
The blog post provides highâquality, idiomatic Raku code. It solves the programming challenges while demonstrating Rakuâs expressiveness and unique 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, focusing 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 ofzipmake these solutions outstanding from an engineering perspective. -
Validate to the Max
Matthias provides exceptionally wellâconsidered, pedagogically rich solutions that focus heavily on code design, readability, and thoughtful evaluation of Perl idioms (TIMTOWTDI). The solutions are characterised by deliberate, clear choices.
Overview
Prioritizing clarity and maintainability over mere conciseness, backed by explicit reasoning.
Swing Code
â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 a 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.
NICEPERLâs Lists
Great CPAN modules released last week.
Perl Maven Online â Live OpenâSource Contribution
| Date | Event |
|---|---|
| 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!
© Copyright Gåbor Szabó
The articles are copyright the respective authors.