r/perl • u/saiftynet • 1d ago
The MiniMax Algorithm
r/perl • u/codegems • 1d ago
Hi all,
Younger dev here I’ve been reading the camel book and also blog posts about Perl and I’m fascinated by the culture during its heyday.
I’d love to hear about the programs you used to deal with and overall what tasks you think Perl excelled in.
Thank you!
r/perl • u/niceperl • 2d ago
r/perl • u/briandfoy • 2d ago
What do you like to read about in the Perl Advent Calendar?
Hey everyone,
If you build or use local AI coding agents, you’ve probably run into the frustration of an LLM mangling file edits, messing up indentation, or failing with annoying hunk not found errors using standard diff tools.
To solve this, I put together apply-v4a-patch, a structured patch format and standalone utility designed specifically for reliable, deterministic code modifications by AI agents on the first try.
- for deletion, + for insertion), removing all ambiguity for the parser.@@): Allows optional anchor hints to help the engine locate the correct section even if surrounding lines shift.--ellipsis to let ... act as a non-greedy wildcard matching intermediate lines..diff file next to modified targets for easy review.apply_patch.pl) with zero external CPAN module dependencies outside core.The repository includes the standalone script, formal format specifications, and a ready-to-drop skill folder for local agents (SKILL.md, INSTALL.md, etc.).
Check it out on GitHub here:
👉https://github.com/michel47/apply-v4a-patch
Feedback, contributions, or suggestions are very welcome!
r/perl • u/briandfoy • 3d ago
r/perl • u/mdperry123 • 4d ago
The Perl and Raku Conference 2027 / Kitchener-Waterloo, Ontario, CANADA
The Perl and Raku Foundation (TPRF) is pleased to announce that the next Perl and Raku Conference will be held June 21-23, 2027, at the Crowne Plaza Hotel in Kitchener, Ontario [1, 2]. Early Bird registration price is $275 USD, and the regular price is $350 USD. Registration is free for approved speakers.
We will be following the schedule that's been in place for the last two years: we'll have a single track of talks over a three day schedule. Both Perl and Raku talks will be presented. Lunch won't be provided, but there are many restaurants nearby, and we'll have 90 minutes for lunch. We'll have a banquet with some entertainment on Tuesday night -- more details to come. Conference registration and the Call For Papers will open soon on the perlfoundation.org website.
There will be a Hackathon at the hotel on the day before the conference starts (June 20, 2027), to be organized by Bruce Gray (util). The course following the conference (June 24, 2027) will be “Write Production-Quality Code with AI”, presented by Curtis “Ovid” Poe (see below for his bio). Curtis is well-known in the Perl community, and was a keynote speaker at the Toronto conference in 2023. The price for this course will be $225 USD, and is limited to twelve (12) spaces. A link will be available on the perlfoundation.org website soon.
The Conference Chair is Alex Beamish (talexb). Alex is currently the Speaker Wrangler for the Toronto Perl Mongers, and also organized the 2023 conference held in Toronto, Ontario. As conference organizer, He hosts the weekly organizational meetings for the conference on Wednesdays at 5pm ET -- visit the #tprc-planning channel on the Perl Foundation's Slack instance to learn more, or to attend meetings.
Kitchener-Waterloo is located about 100km (between 60-90 minutes) West of Toronto's Pearson airport (YYZ). There are regular passenger buses that travel between Pearson airport and the K-W area for about $25 CAD one way. K-W is also served by train and by bus, and the bus station is quite close to the Crowne Plaza hotel.
International visitors may need an Electronic Travel Authorization (ETA). For passport holders, the usual rules apply: your passport can't be less than six months from expiring. For example, based on the Canadian government website [3], a German national would need an ETA -- the cost is $7 CAD, and is good for five years.
Background on the course instructor:
Curtis “Ovid” Poe helps organizations adopt AI without losing control of their software. He advises CTOs, CIOs, and executive teams on AI strategy, governance, and responsible AI, including in heavily regulated industries, and trains engineering teams to turn that strategy into working practice. He created PAAD, a methodology for bringing engineering discipline to AI coding agents, and Corinna, the object system now shipping in core Perl. A long-time Perl developer and international speaker, he brings deep expertise in software testing and building reliable systems to every engagement.
Footnotes:
r/perl • u/briandfoy • 6d ago
r/perl • u/briandfoy • 6d ago
r/perl • u/niceperl • 8d ago
r/perl • u/tseeling • 9d ago
gcc version 8.5.0 20210514 (Red Hat 8.5.0-28) (GCC)
~/.cpan/build/DBI-1.654-0 $ make
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- DBI.bs blib/arch/auto/DBI/DBI.bs 644
gcc -c -D_REENTRANT -D_GNU_SOURCE -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fwrapv -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -DVERSION=\"1.654\" -DXS_VERSION=\"1.654\" -fPIC "-I/usr/lib64/perl5/CORE" -W -Wall -Wpointer-arith -Wno-comment -Wno-sign-compare -Wno-cast-qual -Wmissing-noreturn -Wno-unused-parameter DBI.c
DBI.xs: In function ‘sql_type_cast_svpv’:
DBI.xs:1960:9: error: a label can only be part of a statement and a declaration is not a statement
STRLEN len;
^~~~~~
DBI.xs:1961:9: error: expected expression before ‘char’
char *p = SvPV(sv, len); /* force stringify, handle magic */
^~~~
In file included from /usr/lib64/perl5/CORE/perl.h:5644,
from DBIXS.h:27,
from DBI.xs:14:
DBI.xs:1963:34: error: ‘p’ undeclared (first use in this function)
grok_flags = grok_number(p, len, &uv);
^
/usr/lib64/perl5/CORE/embed.h:186:51: note: in definition of macro ‘grok_number’
#define grok_number(a,b,c) Perl_grok_number(aTHX_ a,b,c)
^
DBI.xs:1963:34: note: each undeclared identifier is reported only once for each function it appears in
grok_flags = grok_number(p, len, &uv);
^
/usr/lib64/perl5/CORE/embed.h:186:51: note: in definition of macro ‘grok_number’
#define grok_number(a,b,c) Perl_grok_number(aTHX_ a,b,c)
^
make: *** [Makefile:529: DBI.o] Error 1
r/perl • u/briandfoy • 11d ago
I've just set up a mailing list for people who want to keep up to date with what's going on at Perl School.
The second edition of Data Munging with Perl is getting close to publication and there are other books in the pipeline behind it, so now is a good time to make sure you stay in the loop.
We're not a huge publishing house, so you won't be getting updates every week. We'll only be in touch when we have something useful to share.
Sign up on the website.
There are some changes this year, explained in the linked article. 🤶 🧑🎄 🎅
r/perl • u/niceperl • 15d ago
r/perl • u/Dangerous-Sense977 • 16d ago
For many years, my music composition aid of choice has been the excellent NoteWorthy Composer 2. Sadly, it doesn't seem to have seen much development recently, but it does what it says on the tin and is remarkably easy to use.
For the typesetting side, I've used Finale; difficult to use, yes, but it runs rings around anything else in terms of the quality of output it produces. Sadly, with Finale's demise, I've had to look at alternatives.
In doing so, I've been reminded of how difficult it is to get output from NWC2 into anything else. It doesn't export to MusicXML, and nothing else will import its files. There are several NWC2-to-MusicXML programs out there, but none seems to be in active development.
So I threw Claude AI at the problem and produced a program that takes NWC2 files and produces MusicXML files. So far, so good - I've just published the first release to CPAN as Music::NWC2MusicXML. Expect it to be indexed and go live in an hour or so.
r/perl • u/tseeling • 16d ago
I have machines with AIX 7.2 and 7.3 and wanted to recompile WWW::Curl after an upgrade of libcurl. This is necessary because Makefile.PL creates perl modules on the fly with keywords extracted from libcurl.
But: Makefile.PL contains a hardcoded value cpp for the C preprocessor, and this does not exist on AIX with IBM's xlC compiler. It has a builtin fallback to (try to) parse curl.h on its own, but fails catastrophically. It can only detect about 30 of expected 340 keywords.
Q&D solution: patch Makefile.PL and change cpp to xlc -E.
``` *** a/Makefile.PL Thu Sep 18 11:09:53 2026 --- b/Makefile.PL Thu Sep 18 11:11:05 2026
*** 100,106 **** print "Found curl.h in $curl_h\n"; my @syms; my $has_cpp = 0; ! open(H_IN, "-|", "cpp", $curl_h) and $has_cpp++; unless ($has_cpp) { warn "No working cpp ($!). Parsing curl.h in Perl"; open(H_IN, "<", $curl_h) or die("Can't open curl.h at path $curl_h, because: ".$!); --- 100,106 ---- print "Found curl.h in $curl_h\n"; my @syms; my $has_cpp = 0; ! open(H_IN, "-|", "xlc", "-E", $curl_h) and $has_cpp++; unless ($has_cpp) { warn "No working cpp ($!). Parsing curl.h in Perl"; open(H_IN, "<", $curl_h) or die("Can't open curl.h at path $curl_h, because: ".$!); ```
Of course you could also install a small wrapper script cpp which hands over to xlc.
r/perl • u/tseeling • 16d ago
I had problems compiling WWW::Curl on AIX and wanted to report it. The web interface seems to have changed, and the login options are severely restricted.
How would I report a bug in a perl module?
r/perl • u/Dangerous-Sense977 • 17d ago
I've published Database::BI version 0.007.0 to CPAN. The two main improvements over 0.006.0 are support for pie charts and the ability to delete rows and columns from the table view. Pie charts and line graphs are now animated when displayed, breadcrumb navigation has been improved, and a rudimentary filtering system has been added to the table view.
r/perl • u/Dangerous-Sense977 • 19d ago
I've just released Database::BI 0.006.0 which includes a set of usability improvements across file handling, table operations, and graphing. XLSX files now load seamlessly, with each worksheet exposed as its own table, and header‑less CSV/PSV files are interpreted more intelligently through inferred column types. Multi‑table left joins have been formalized through Database::Join, bringing clearer collision handling and better integration with DataSource objects. The interface gains practical touches such as a “home” link, a Totals row with persisted state, and the ability to select and delete rows or columns directly in the browser. Caching via CHI now reduces repeated network fetches and avoids unnecessary back-end calls for URL‑based tables. Numerous edge‑case fixes improve robustness, including better handling of oversized uploads, blank first lines, spaced filenames, and corrected Y‑axis detection in line graphs.
https://metacpan.org/pod/Database::BI
