How would you read a really large file?

A comparative analysis of different approaches discussed in the post below.
https://theweeklychallenge.org/blog/read-large-file

This week in PSC (177) | 2025-01-23

Back to the full roster.

  • We talked again about Perl 42. We think it may already be too late for it in this cycle, so we want to make a thorough case for it by releasing a side tarball for the end of this cycle, and if no technical blocker is found, actually do the jump to 44 in the next cycle.
  • We listed out next steps for the next point release.
  • Aristotle summarized the suggested simplification of our plan for TLS in core, but a fuller discussion next week is necessary.
  • PPC 0014 (English names) has no implementer.
  • There was a branch for PPC 0021 (Optional chaining) but the implementer hit a wall and got stuck.
  • Regarding the dual PPCs 0030 (equ) and 0031 (eq:u), we lean towards the former. Options would be cleaner if we had a big and regular set of them across operators, but neither is the case, and they constitute an extra concept.
  • Many thanks to Dave Cross for providing an initial implementation of a PPC index page. We decided to merge it as is, then iterate on the PPC process afterwards, instead of doing it the other way around.

[P5P posting of this summary]

Please keep your information up-to-date

Some end of year reminders for CPAN Authors:

Do all of your modules have up-to-date contact information? If not, please release new versions with an updated email address in the AUTHOR section.

(And while you're at it, why not add a security policy to your distribution, so that people know how and where to report a security issue with your module.)

If you have a cpan.org email alias, does it forward to the correct email address?

And most importantly, if you are taking time away from maintaining Perl modules, please add ADOPTME or NEEDHELP as co-maintainers to mark your modules as available.

Thanks, and best wishes for 2025.

Cosmoshop supports the German Perl/Raku-Workshop

We are happy to announce that CosmoShop supports the German Perl/Raku-Workshop.

CosmoShop is the largest pure Perl based shop system.

Since 1997, we have been implementing sophisticated and individual eCommerce projects in the B2B sector with our specially developed store software. We are the central point of contact for the entire spectrum.

git show ...

A very usefull feature of git show command, I discovered last night.
Please check out the post for more details:
https://theweeklychallenge.org/blog/git-show

This week in PSC (172) | 2024-12-12

All three of us attended.

  • We discussed the version 42 work on the psc/ppc0025 branch. We have an initial proof of concept that is almost good enough to test against CPAN in order to assess whether the plan is actually feasible and proceed from there. We discussed the timeline for this.
  • We reviewed our plan for TLS in core. Some questions came up based on the conversation on the p5p thread and we need specific next steps now that Craig has provided a patch for the first one. We hashed out next steps to keep this moving.
  • We briefly discussed the Random::Simple suggestion and decided we won’t address it at this time. (The inclusion of cryptography libraries in core will probably change the situation here in the foreseeable future.)

[P5P posting of this summary]

Wide character (U+XXXX) in substitution (s///)

There is a “use locale” somewhere in the code you are running.

**Update:** This is specifically in reference to warning about wide characters *“in substitution”*. See also [the follow-up entry](/users/aristotle/2025/03/once-more-subst-widechar-warning.html).

Live-streaming Perl 5.41.7 development release

I skipped 2023 but in 2024 I'm actually doing two dev releases of Perl again. This time it is version 5.41.7.
And again, you can watch it live on Friday 20th of December on Twitch.

git bisect ...

A gentle introduction to git bisect command for all git fans.
Please check out the post below:
https://theweeklychallenge.org/blog/git-bisect

This week in PSC (171) | 2024-12-05

This week felt like a PSC reunion meeting. We extended invitations to join us for a discussion of the version change to a number of core contributors, and ended up joined by ex-PSC members Ricardo and Paul (Neil would have joined, but couldn’t make it).

There is skepticism but no strong opposition. The benefits are in some doubt, and resources to implement this will not come from core contributors. So we want to experiment on a branch to get a handle on feasibility and viability, which we hope will give us better data to evaluate the proposal and, we hope, allay any worries.

We also briefly discussed our intentions for the PPC process with Paul. We are thinking about an automatically generated status page on GitHub Pages.

[P5P posting of this summary]

PPI Signatures Trial Release - Feedback Requested

SYNOPSIS

I have just released a trial version of PPI that includes the first shot at support for Perl signatures. After installing it, you can access this feature in the following ways.

For users of perlcritic and other PPI consumers:

  • include use 5.035; or higher in your code
  • include use feature 'signatures'; in your code
  • include a known signatures-enable strictures modules from CPAN in your code, e.g. Mojolicious::Lite, Modern::Perl
  • if you enable signatures via a custom strictures module, declare it via %ENV: PPI_CUSTOM_FEATURE_INCLUDES='{MyStrict=>{signatures=>1}}' perlcritic Work.pm

For consumers of PPI, in addition to the above:

  • enable recognition of custom parsing feature modules via: PPI::Document->new( custom_feature_includes => ... )
  • enable the custom parsing feature for the entire document via: PPI::Document->new( feature_mods => ... )
  • enable complex parsing of calls to module includes via: PPI::Document->new( custom_feature_include_cb => ... )
  • query enabled features via ::Element->presumed_features

In a similar way as signatures, the core try feature is also recognized.

TODO

Registration is OPEN - Perl Community Conference, Winter 2024

The Perl Community Conference is a hybrid in-person-and-online event held on December 18th from 10:30a-4:30p CST. Perl's 37th birthday, featuring talks from the world's top Perl programmers and community members. Topics include artificial intelligence, bioinformatics, web applications, chemometrics, genetics, data science, high performance computing, ethics, and much more! Join our mailing list to receive the latest updates!

Sign Up:

https://www.meetup.com/austin-perl-mongers/events/304573306/

We have secured a location for anyone looking for a place to participate in person to be. At least 2 Conference talks will be given and streamed LIVE from this location.

See some of the many accomplishments of the Science Perl Committee in just the last year:

https://www.reddit.com/r/perlcommunity/comments/1gvtv7s/first_year_accomplishments_of_the_science_perl/

At the conclusion of this Conference, we will be announcing our exciting plans for Summer 2025 and future Issues of the Science Perl Journal. Full abstracts for current Issue are now available for free at the site.

Cheers,

Brett Estrade (OODLER)

Science Perl Committee Chairman

Promise in Perl

Recreating the Future using Promise::ES6.
Please checkout this post for more information.

https://theweeklychallenge.org/blog/promise-in-perl

This week in PSC (168) | 2024-11-15

Another extended meeting, which everyone attended. Here’s a summary:

  • We want to get actual implementation of TLS in core underway. Paul volunteered for some of it. We’ll email our plan to p5p, to get things started.
  • We talked about undef-aware equality operators. While the flags idea is tempting, we don’t think that there are enough useful flags to go down this route (what’s the use of stacking flags, if you only have one). If equ and === are added to Perl, we think the negative versions (neu and !==) should be added as well.
  • We had a quick version discussion. The document is almost ready.
  • We want to poke the PPC implementors again, to make sure we can have some of them available in the next version of Perl.

[P5P posting of this summary]

I wish Mojo::UserAgent could be made to not visit private IPs

Someone wanting to make a social media site (such as a Mastodon server & web client for example) will want to allow its users to post URLs, for which previews will be shown in their posts.

These posts will be visited by a UserAgent, but there is the risk that a private IP (disguised as a FQDN hostname that resolves to it) will be in the URL's host, and that might cause security issues.

I could use LWP::ParanoidAgent, but then I'd have to fork a process to make the whole thing async, like a good Mojolicious site will be, and too many processes running can be a problem. Also I'd be missing on the many Roles that exist for Mojo::Useragent.

So I opened this issue on Mojolicious's github wishing for a solution.

London Perl & Raku Workshop 2024: Recordings & Thoughts

Recordings of all talks from this year's London Perl & Raku Workshop are now available on YouTube: https://www.youtube.com/playlist?list=PLxNdCz2kBhVlzbVFcjwY6GkQf4zBhvwFn.

The sound quality of the recordings is not fantastic. We had some sort of issue that I've tried to fix in post. However, the auto generated captions by YouTube tend to be pretty good these days, so enable those if you have any problems understanding the speaker.

I go into the details a bit more about this in a personal blog post about the event, and how much effort is involved in trying to create the recordings, amongst other things.

Thanks to this year's sponsors, without whom LPW would not have happened:

Scientist in Perl

Have you heard of CPAN module Scientist?
Please find below a gentle introduction.
https://theweeklychallenge.org/blog/scientist-in-perl

This week in PSC (176) | 2025-01-16

Just Graham and Philippe this time.

  • We talked a bit about PPC 0025 (Perl version), but didn’t say anything new
  • Regarding PPC 0030 (new operators) vs PPC 0031 (flags on operators), we continue to think that flags on operators bring more confusion than value (PSC #168). Perl is an operator-rich language, so adding new operators when needed sounds right.
  • As for the discussion on implicit stringification of references, we think that adding more runtime effects to strict doesn’t really fit. The issue would likely be better addressed with a new warning (and is very similar to the uninitialized warning when dealing with undef).

[P5P posting of this summary]

German Perl/Raku Workshop 2025 in Munich - 12.05.2025-14.05.2025

(English below)

Hallo zusammen,

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

Der Workshop findet nächstes Jahr vom Montag 12. Mai bis
Mittwoch 14. Mai im Kolpinghaus in München 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 orga2025@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 2025.

The workshop will take place next year from Monday 12 May to
Wednesday 14 May at the Kolpinghaus in Munich..

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

Perl Weekly Challenge 293: Similar Dominoes

These are some answers to the Week 293, Task 1, of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a few days from now (on November 3, 2024, at 23:59). This blog post provides some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.

Task 1:

You are given a list of dominoes, @dominoes.

Write a script to return the number of dominoes that are similar to any other domino.

$dominoes[i] = [a, b] and $dominoes[j] = [c, d] are same if either (a = c and b = d) or (a = d and b = c).

Example 1

Input: @dominoes = ([1, 3], [3, 1], [2, 4], [6, 8])
Output: 2

Similar Dominoes: $dominoes[0], $dominoes[1]

Example 2

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.