perl.claytongrace.com Modern Perl - news, resources, weekly spotlight curl https://perl.claytongrace.com curl https://perl.claytongrace.com/plain curl https://perl.claytongrace.com/feed.xml == SPOTLIGHT == Type::Tiny (Module) | week of 2026-09-21 Type constraints that work with Moo, Moose, or nothing Type::Tiny is a small constraint library you can drop on a Moo or Moose class, or use on its own with Type::Params to check subroutine arguments. Declare Int, ArrayRef[Str], or a Dict of named keys once, then reuse those types in attributes, signatures, and test assertions. On 5.36+ it pairs cleanly with native signatures: validate the incoming values, then let the rest of the sub assume they already match. Install via cpm; Types::Standard covers the usual scalars, refs, and Maybe wrappers without pulling in Moose. -> https://metacpan.org/pod/Type::Tiny == ONE-LINER OF THE WEEK == week of 2026-09-21 | Hour-of-day request counts from a Combined Log perl -nE '/:(\d{2}):\d{2}:\d{2} / and $h{$1}++; END { say sprintf("%s\t%d", $_, $h{$_}//0) for map { sprintf "%02d", $_ } 0..23 }' access.log Bins Combined Log timestamps by hour so a quiet-versus-peak day is visible without a log parser. == NEWS == updated 2026-09-21 * [2026-09-21] Weekly Challenge 392 opens with Convert Palindrome and Words Length Product Week 392 of The Weekly Challenge, dated 21 September, asks for the shortest palindrome formed by prepending characters to a given string, then the largest product of two word lengths whose letters do not overlap. Lance Wicks returned with Perl solutions for week 391. Solutions are due 23:59 UK time Sunday 27 September. https://theweeklychallenge.org/blog/perl-weekly-challenge-392/ * [2026-09-19] Dancer2 2.2.1 blocks YAML object and code injection in request bodies Jason A. Crome released Dancer2 2.2.1 on 19 September as a security follow-up to 2.2.0. Serializer::YAML no longer lets YAML::Load instantiate blessed objects or eval code from request bodies; YAML 1.30 is now the floor, and CLI::Osprey 0.09 is declared. Apps that never set a YAML serializer can still be reached through Serializer::Mutable on text/x-yaml and text/html. https://blogs.perl.org/users/jason_a_crome/2026/09/dancer2-221-released-security.html * [2026-09-19] HTTP::API::Core splits JSON client policy from the HTTP transport Shingo Kawamura published HTTP::API::Core, a small layer for JSON HTTP API clients that leaves the actual request to HTTP::Tiny, LWP, Mojo::UserAgent, or Furl. The library owns retries, pagination helpers, and default headers so a client does not have to pick one UserAgent forever. The code is on GitHub at kawamurashingo/HTTP-API-Core. https://github.com/kawamurashingo/HTTP-API-Core * [2026-09-16] Dancer2 2.2.0 ships path-traversal and session-id security fixes Dancer2 2.2.0, dated 16 September, patches a high-severity static-file path traversal (GHSA-6xw8-v24c-m783) affecting 2.1.0 and earlier, plus a moderate hook-halt bypass (GHSA-v527-r4px-7vx7). Session IDs now always come from Crypt::URandom. The Data::Dumper serializer left core; apps that still need it should take Dancer2::Serializer::Dumper from CPAN. https://blogs.perl.org/users/jason_a_crome/2026/09/dancer2-220-released-security-updates-please-read.html * [2026-09-14] New PSC plans 5.44 and 5.42 point releases The newly elected Perl Steering Council posted its first minutes as meeting 235 on 14 September. After GitHub and mailing-list handover, the group said it intends point releases of 5.44 and 5.42 for security and build fixes, and is taking suggestions for other backports. The same notes start a discussion of core support for local::lib-style layouts across perl upgrades, and of a less error-prone dual-life release process. https://blogs.perl.org/users/psc/2026/09/this-week-in-psc-235-2026-09-14.html * [2026-09-13] Weekly Challenge 391 opens with Array Median and Arrange Box Week 391 of The Weekly Challenge, dated 13 September, asks for the median of two already-sorted arrays after a merge, then the longest nest of boxes that are strictly smaller in both dimensions. Matthias Muth and Matt Martini asked for shared JSON examples; the club repo now has a Week 390 examples/json tree. Solutions are due 23:59 UK time Sunday 20 September. https://theweeklychallenge.org/blog/perl-weekly-challenge-391/ * [2026-09-13] German Perl Workshop 2026 lightning talks are on YouTube Max Maischein posted on 13 September that the lightning talks from the German Perl/Raku Workshop 2026 are up as a YouTube video, after Lee Johnson's edit. The post is a pointer to that five-minutes-or-less reel, separate from the full-session playlist he linked the week before. https://blogs.perl.org/users/max_maischein/2026/09/the-lightning-talks-of-the-german-perl-workshop-2026-are-online.html * [2026-09-13] rjbs ships perl-ci images for old Perls on Debian trixie Ricardo Signes published perl-ci, a set of one-image-per-perl-version containers built on Debian trixie for amd64 and arm64. The point is to test CPAN dists on older interpreters without the docker-perl / docker-perl-tester split, where official images only cover recent stables. The build and GHCR packages are at github.com/rjbs/perl-ci. https://rjbs.cloud/blog/2026/09/perl-ci-images/ * [2026-09-13] Dave Mitchell documents the regex super-linear cache The Perl Foundation posted Mitchell's August 2026 core grant report on 13 September: 24 hours 10 minutes, most of it (18h29) documenting the regex engine's super-linear cache and its comments. The rest covers GH #24763 (stale numeric value after a string change), a review of the MAYBE modifier for ExtUtils::ParseXS, and a perlxs.pod tweak. https://news.perlfoundation.org/post/maintaining_perl_dave_mitchell_august_2026 * [2026-09-13] Tony Cook's August 2026 grant log is on TPF news The Perl Foundation published Tony Cook's Maintaining Perl grant report for August on 13 September. The log is a day-by-day ticket review: GitHub PRs in the 245xx-246xx range, a possible dXSTARG/constant-folding issue, and CI pushes. It is the companion August core-maintenance report to Dave Mitchell's same-day post. https://news.perlfoundation.org/post/maintaining_perl_tonyc_august_2026 * [2026-09-12] WebDyne runs PAGI apps on Cloudflare Workers through WASM Andrew Speer described a zeroperl fork plus a Worker harness that keeps a Perl interpreter in WebAssembly and presents Cloudflare HTTP and WebSocket events as PAGI $scope/$receive/$send. Pure-Perl CPAN modules bundle more easily than XS; the tooling is on npm as @webdyne/webdyne-zeroperl. Demos include a time Worker, a WebSocket Scott Adams interpreter, and a D1/KV/R2 wine-cellar sample. https://blogs.perl.org/users/aspeer/2026/09/running-perlpagi-applications-on-cloudflare-workers-via-webassembly.html * [2026-09-07] Weekly Challenge 390 names Robbie Hatley champion of the month Week 390 of The Weekly Challenge opened 7 September with Decode String (repeat K[encoded] brackets) and Order Characters (greedy moves of one of the first k letters). Mohammad Sajid Anwar named Robbie Hatley champion of the month — rank 25, 1100 points, 376 Perl solutions and 174 posts as of that issue. Solutions are due 23:59 UK time Sunday 13 September. https://theweeklychallenge.org/blog/perl-weekly-challenge-390/ == SECTIONS == /news News briefs /ecosystem Stacks and tools /resources Docs and reading /homelab Homelab and automation /cookbook API and data snippets /submit Propose a spotlight project /contact Contact form (saved on server) /feed.xml Atom feed /plain This text edition HTML: https://perl.claytongrace.com/