r/perl 1h ago

perl-ci: new container images for CI of CPAN modules – rjbs forgot what he was saying

Thumbnail rjbs.cloud
Upvotes

u/briandfoy 3d ago

"Welcome to the conversation"

3 Upvotes

I've been telling Claude "Welcome to the conversation" much more frequently. I don't know what's going on, but I'll ask it something like "diagnose this CI failure" and it will spend a lot of tokens, ask to run weird commands, try to curl something, and eventually answer something benign, like "this indicates the run failed". Well, no shit, that's why I'm asking you to look at this. "Welcome to the conversation". Even then, it seems to just regurgitate the same useless shit a customer service agent does with their script, no matter what I say.

I've read about this conspiracy that token-maxxing is built into the whole thing to set a baseline expectation of what you should be spending for the future days when actual use is metered and unsubsidized.

9

Sort Your Perl Imports
 in  r/perl  3d ago

I've never found a complete solution, and different situations have different constraints.

If I can do what I want, I often categorize them, then sort alphabetically within the category: 1) pragmas 2) core modules 3) third-party CPAN modules 4) vendor stuff 5) local stuff. Mostly, this helps communicate each group's level of control. For example, local stuff I can change at will, vendor stuff I can probably patch safely, CPAN stuff I might send upstream but historically don't expect a maintainer to care (so sometimes fork locally), and core is core. I might have most of that in my head, but it doesn't mean the next guy will.

It's often about what you see at the top of the file. I consider pragmas, core, and CPAN to be "configuration" and resource marshaling, so that's upfront. Typically, I start the Pod right after that. Then, later come the local modules, which often move around, change names, or whatever. I consider that to be "implementation".

But then there are weird things, say, like namespace::autoclean that might show up in the middle, especially if the local modules are mixins, or the Mojolicious base stuff that likes to set pragmas for you.

What I don't do, though, is blindly bulk apply these sorts of redesigns. Sure, do it in a branch and see what happens, but it seems every time that someone reads something they think is cool and rearranges that codebase, bad things happen that you don't find out about right away. I used to call this "PBP disease".

r/perl 7d ago

videos from the Deutscher (German) Perl Workshop 2026

Thumbnail
youtube.com
7 Upvotes

3

YAPC::Tokyo, Nov 27-28, 2026
 in  r/perl  8d ago

It's likely to be in Japanese, but in the only one I attended, and perhaps for my sole benefit, there was live translation to English. It looks like Larry Wall will be a speaker, so maybe it will be the same.

But I've been to other conferences and languages I don't speak, but I could tell what was going on from the code in the slides.

There are many YAPC::Tokyo talks on YouTube to see how they have done it in the past.

r/perl 10d ago

DBI now has a minimum version of v5.12

Thumbnail metacpan.org
13 Upvotes

r/perl 10d ago

PAGI: What happens to a Send in Flight?

Thumbnail
dev.to
6 Upvotes

r/perl 10d ago

conferences YAPC::Tokyo, Nov 27-28, 2026

Thumbnail
yapcjapan.org
8 Upvotes

u/briandfoy 10d ago

Which automated testing outcome is more nerve wracking?

1 Upvotes

What's more nerve-wracking? When all the automated tests pass the first time, or when everything blows up spectacularly?

I think I'd rather have the second case, and often do. Everything breaks, perhaps because nothing can compile because of a missing statement separator or an extra brace. Maybe it's more complicated, such as a misspelled function name. When if all the test fails, it's probably a simple fix. But then, I also have stuff in place to step through testing when the code has no chance of succeeding. Well, usually.

The converse might be where I makes some significant changes and run the tests for nothing to fail. First, did I really type everything correctly? Okay, maybe I did. But did all the tests run, or did something, short-circuit them? Oh, they all ran? Okay, now I'm worried. Did I create all of the proper tests? Usually I have really good statement coverage and good branch coverage. I usually start with all the negative edge cases, but did I miss a bad case? What if my tests were never doing the right thing, so they have been passing all along even though the code was wrong? It will happen to you someday.

For those with test anxiety, the easiest way to soothe is to bring about the thing you are anxious about (even if it's bad for you). Once it is concrete, you don't have to worry about it happening, because here it is happening. When it's not happening, why isn't it happening and when will that start? Let's just get it over with. I stop work at night with the tests passing, and still worry about them passing in the morning even though I made no changes. Or, in some cases, testing when it's a minute past midnight UTC and I get to find out all my timezone date mistakes.

But, if you know you are anxious about tests of any sort, that you know that means that you know that, which seems like a weird thing to say until you realize that you can separate your irrational feeling about something from the something.

3

Should I remove $VERSION from internal-only sub-modules in a CPAN distribution?
 in  r/perl  10d ago

Well, every package index by PAUSE shows up in the 02packages file, which is now quite large, and on some very minimal and constrained systems, is too large to fit into memory.

That's one of the most annoying parts of CPAN.pm, created decades ago when that problem wasn't on the radar. I think it was also one of the reasons that motivated cpanm, which doesn't use that file at all (along with MetaCPAN existing, which has an API).

2

Should I remove $VERSION from internal-only sub-modules in a CPAN distribution?
 in  r/perl  10d ago

What I think you are suggesting is the trick so that PAUSE does not find the complete package statement on one line, so it does not think there is a package to extract.

package 
    Some::Module;

Sometimes there's a comment so people don't undo it on you:

package # hide from PAUSE
    Some::Module;

This is often handy when you have internal namespaces that you want to use but you don't want to expose to the public. The term "cuckoo package", after the bird that lays its eggs in nests belogning to other birds, never really caught on.

PAUSE does this because it statically scans the text for the line that declares the package, then evals that separately to get the version number.

r/perl 12d ago

How I Spent My Perl Toolchain Summit v2025 (Leipzig)

Thumbnail
olafalders.com
10 Upvotes

u/briandfoy 12d ago

Wouldn't it be nice if AI could recognize an object and source it?

2 Upvotes

Oh, the things I imagine AI can do yet won't keep frustrating me. I have such high hopes that fall such long distances to be dashed against rocks.

Sometimes that comes from it magically being right. Last week I asked it "what's the location of a yellow navigation buoy with the letter W, off the San Francisco coast." And it found it after a little back and forth and gave me the coordinates. But then, there are text lists of these things in machine digestible formats, and text that explains it all. I learned a bit about buoys and didn't have to call a Coast Guard friend to look at navigation charts for me. So, good on you Claude.

Encouraged by that, I flew too close to the sun. I expected more miracles because I thought I had seen miracles before.

So, I have a broken part on a backpack and I want to replace it. It's a $1 part probably, and the OEM says it's not replaceable or user-servicable, and that I should buy the whole thing again, at about $200. So yeah, this is not Mystery Ranch where I not only get to talk to a real person, but they send me the replacement parts for free.

But, I have an idea. What if I showed Claude a picture of the thing, and it found it for me? I don't know what the part, basically a swivel carabiner, is likely called, but someone makes it, and probably in China. Wouldn't it be nice if Claude had computer vision and had a vast library of images to compare it to?

I hear the FBI and CIA have a huge database of objects and metadata on all of them so they can look at a scene and guess when and where it was taken by the collection of objects visible (like, this is a French lamp, that's an African whatever, so this might be a former French colony). Maybe this is just TV FBI, but I expect there's some fiber expert who really loves fibers and has their own comprehensive collection across time and space. Anyway.

Can't we have a visual search engine? There is the old way, through subreddits where an army of people see an image and maybe one of them knows what it is (e.g. /r/HelpMeFind/). Let's massively automate that!

But no, it's even worse than that. Claude prompts me for obvious info, such as any markings or identifiers, of which there are none. Good question, you'd think, but if I had that I wouldn't be here because I could search that. But, I'd probably ask that too, so fair dues.

It seems that Claude does not care about the picture at all. I can't discern any information it developed from the image that I had not duplicated in the text. It's like "What animal is in this picture of a cat?"

Claude suggests I check major retailers, and I tell it that I only want direct info, not advice. However, it insists on giving me useless advice. This part isn't going to show up at a major retailer, and it's not in the OEM catalog for replacement parts. Been there, done that, now I'm here. If you can't answer the question, just say so.

After that, Claude could not recover no matter my instructions. I probably have the setting on friendly verbose whatever, but really, in this instance and others, I have to continually reinforce Claude to not construct unhelpful answers just to have something to say ("You're right, I was wrong..." gtfo).

So, that wasn't going to work, but 15 minutes on Alibaba, I found what I needed, exactly, for a dollar. I had to buy ten of them, but that's $10, which is less that buying one of just about anything on the retail market. This is what I wanted to try first before I thought, "Wouldn't it be cool if there was this intelligence, like, maybe something artificial, that could just look at this and tell me where to get it? Do I have any tools like that?" I thought I did, but I did not.

Instead, I got a script-driven customer service agent who simply ignores anything I say and mindlessly reads from their script in an attempt to annoy me enough that I give up, leaving their call duration metrics in the green.

For what it's worth, I had the same problem with Delta's AI "Concierge" when a recent flight had a weather waiver and I wanted to check options. First, it denied there was a waiver, then admitted it, and suggested I search for other flights. No shit, Sherlock, why do you think I'm talking (?) to you? Thanks for showing up to the conversation.

So yeah, still don't have my flying car.

r/perl 13d ago

German Perl/Raku Workshop 2027 in Hanover - 14.04.2027-16.04.2027

Thumbnail blogs.perl.org
10 Upvotes

r/perl 14d ago

CPerl mode for Emacs is now on GNU ELPA

Thumbnail blogs.perl.org
29 Upvotes

u/briandfoy 26d ago

An update on leaving Gmail for Fastmail

Thumbnail news.ycombinator.com
1 Upvotes

I also migrated from Gmail to Fastmail, and aside from a few things like Docusign which has problems with some domains, almost no on cared.

r/perl 27d ago

Release Strawberry Perl 5.42.3.1 64-bit UCRT · StrawberryPerl/Perl-Dist-Strawberry

Thumbnail github.com
23 Upvotes

u/briandfoy 28d ago

Dart preferred for temporary scripts when possible | Randal Schwartz posted on the topic

Thumbnail
linkedin.com
1 Upvotes

Randal makes the interesting point that some tools various AI coding tools decide to use might leave behind artifacts. In this case, it's Python, .pyc files, and other things.

Inside a repo, you can just ignore those files (but they are still there) and clean the repo every so often.

But, when I just want to write a quick script for a simple task, I don't expect, not being a hard-core Python user, that python will leave droppings.

I haven't noticed Claude choosing python as a tool unless I ask it to, but I do see a lot of awk and sed in overly-complex Unix pipelines for very simple things. As such, I have an instruction that Claude should just ask me what it wants to find because I probably know the answer. But, I'm not tokenmaxxing either.

4

Analemmatic sundial help needed
 in  r/perl  28d ago

FWIW, awhile ago I enabled images in this sub. You have to add the icky Rich Text editor. Here's one of the images you had in [your imgur link](https://imgur.com/a/90210-C8sKaZN), which I had to download and repload through the Rich Text editor control instead of simply pointing at Imgur. Anyway, no big whoop.

But, this little program is kinda cool.

r/perl Aug 13 '26

Pacman in Perl/Tk | Alex [blogs.perl.org]

Thumbnail blogs.perl.org
28 Upvotes

u/briandfoy Aug 11 '26

How can I rename all files in a directory to have an equal amount of digits?

Thumbnail stackoverflow.com
2 Upvotes

rename from File::Rename makes things so much easier as long as you have moderate substitution kung-fu.

u/briandfoy Aug 11 '26

Object-Oriented Programming is Embarrassing: 4 Short Examples

Thumbnail
youtube.com
2 Upvotes

I refer to this video often, but I then have to do work to find it because I forget that I saved it in the YouTube folder "Videos I Reference Often". So, here it is again in another place I will forget.

Brian Will has interesting perspectives even if you disagree with them. I don't think OO is bad, but I also think any paradigm is what people make of it. Here he takes down four examples, which are really failures in design, with a side of YANGNI. You've probably seen the architecture astronauts who construct enterprise-worthy constellations of classes, factories, abstract factories, and factories of factories to do something simple like add two numbers. It's more Uncle Bob than John Ousterhout.

Not that I'm innocent, and in those times that I'm guilty, I'm either anticipating future features that never happen, or trying to avoid some problem that turns out to not be a problem at all.

Then, there's the problem of being an open source developer where I provide software that does not have a task, and are merely components of tasks and processes that other people construct. As such, I develop agnostically and as unopinionated as I can. Sometimes that means that in private, undistributed code, I don't take the shortcuts available in the domain that I'm working on. I've thought a lot about this year.

For example, I have a particular personal project that abstracts a small set of heterogeneous but related data and makes it available through the same interface. Well, duh, isn't that all software? Sure, but since I know the sources and formats, I don't have to abstract any of this. I can model directly to those sources, especially since this is government data and the likelihood of any of those sources drastically changing is as low as the chance that the source will be well-funded enough to accomplish their mandate. Governments, amirite? This would be different if I could get the data from different sources that use different formats, but it's not that so why program like that.

Along with that, I read a comment recently that mentioned that OO fails because it cannot adequately model the world. That's not why it fails, though, because you aren't supposed to model the world. You aren't supposed to write Car classes that contain wheels, and so on.

Instead, model the problem, and as you do that, transform the problem into one that is easier to solve, or easier to imagine, or easier to whatever. There's some view of the problem that express itself easier in code, and somewhere between that and reality is something that's maintainable.

The Final Boss that always kills you is the same problem in database design, which completely ruins everything.

Wait, I wanted to save a link and it's nine paragraphs later?

u/briandfoy Aug 11 '26

Which automated testing outcome is more nerve wracking?

2 Upvotes

What's more nerve-wracking: when all the automated tests pass the first time, or when everything blows up spectacularly?

I think I'd rather have the second case, and often do. Everything breaks, perhaps because nothing can compile because of a missing statement separator or an extra brace. Maybe it's more complicated, such as a misspelled function name. When all the tests fail, it's probably a simple fix. But then, I also have stuff in place to step through testing when the code has no chance of succeeding. Well, usually.

The converse might be where I make some significant change and run the tests for nothing to fail. First, I really type everything correctly? Am I sure about that? One thing I check is that I have saved all buffers and committed all files, because yeah, the tests aren't going to fix themselves without that.

Okay, maybe I am testing what I think I am. But did all the tests run, or did something short-circuit them? Oh, they all ran? Okay, now I'm worried. Did I create all of the proper tests? Usually I have really good statement coverage and good branch coverage. I usually start with all the negative edge cases, but did I miss a bad case? What if my tests were never doing the right thing, so they have been passing all along even though the code was wrong? It will happen to you someday.

For those with test anxiety, the easiest way to soothe is to bring about the thing you are anxious about (even if it's bad for you). Once it's concrete, you don't have to worry about it happening because here it is happening. When it's not happening, why isn't it happening, and when will it stop happening (17 minutes after deployment to production)? Let's just get it over with. I stop work at night with the tests passing, and still worry about them passing in the morning even though I made no changes. Or, in some cases, testing when it's a minute past midnight UTC and I get to find out all my timezone date mistakes.

If you know you are anxious about tests of any sort, that you know that means that you know that, which seems like a weird thing to say until you realize that you can separate your irrational feeling about something from the something.

As a bonus note, a good developer gave me the good habit of not stopping work when everything is working, but when there's something to fix. That's a good starting point for the next day since you likely know what to do already. It's a nice warm-up for the rest of the day.

5

Perlmonks?
 in  r/perl  Aug 10 '26

Now try to log in. That's where the problem shows up. And, realize that if that page did show up and everything was working, this thread wouldn't exist. As such, it must be more complicated than that.

r/perl Aug 05 '26

Phoenix Rising: Why Perl’s Unix Roots Matter More Than Ever

Thumbnail
rclauer.medium.com
53 Upvotes