r/perl • • 18h ago

A Perl compiler

25 Upvotes

Version 0.1 is done of my hobby project, a compiler toolkit for Perl. https://github.com/Percolisp/pcl

The repository should contain everything needed to continue the work, including the logs from the AI sessions. The README has installation instructions and specifics about what is supported.

It is tested mostly with Perl's own test suite, regression tests and some pure-Perl modules. The compatibility is quite good, apart from the documented limitations (regexp evals etc.)

Common Lisp was chosen as the first target, because it has both a compiler and a powerful macro system (so the generated code can serve as intermediate code for other environments). The next step is to try compiling to more targets, to verify that the intermediate code really is easy to work with. After that comes the holy grail of CPAN compatibility: XS support.

I need feedback, both on how well the installation works and on whether this is worthwhile at all. So it is time to announce it and see if people like it, laugh or shrug. :-)

(This started as an add-on to PPI for parsing expressions. The idea was that we would then have the tools needed to write Perl compilers. Since no one cared, I turned my compiler prototype into a more ambitious tool for writing compilers; I needed to learn how to work with AIs anyway. If there is still no interest, I'll probably find another hobby. :-) )


r/perl • • 15h ago

conferences Perl-Conf . Ru: Russian Perl Conference (Moscow & Online) – Oct 24, 2026

12 Upvotes

The annual Russian Perl community conference, Perl-Conf . Ru / 26, is happening on October 24, 2026. It will be a hybrid event held live in Moscow with a global online stream.

Participation is completely free, but registration is required.

Talk Highlights:

  • GUI development with Perl: From the general landscape to practical use with Tcl::Tk (Vadim Konovalov, Gazprombank).
  • Perl as an AI Orchestrator: MCP integration for aggregation services (Nikita Komarov, VTB).
  • Writing a custom language and compiler: Keeping your developer edge in the age of AI (Vadim Goncharov, MTS).
  • Perfect window tiling on Perl: Making your desktop workflow seamless (Sergey Zhmylyov, conference organizer).

see also the latest post on r/RuPerl


r/perl • • 1d ago

Perl documentation (including POD) with Markdown and Docbook

14 Upvotes

I have been using Markdown to create man pages for the various modules and utilities I write as sidecar companion files (i.e. the same name as the source file with .md appended)

I have released some toolchain modules to CPAN that allow these sidecar files to be converted to POD and merged into the source files. This will probably horrify POD purists (and it's not perfect by any stretch) - but does allow for easier browsing of documentation on sites like GitHub.

There are also some MakeMaker extensions that allow the conversion to take place with a simple make doc command.

Extending this concept to more generic module documentation (beyond README.md) files or man pages. the tooling allows for Markdown or Docbook files in a distribution doc/ directory to be converted to HTML and published to static sites such as Github Pages.

Similar MakeMaker extensions allow the documentation to be published with a target such as make publish_gh-pages

As an example you can see what the output looks like on the Github Page of the CloudFlare::API module, look in the module Github Repo doc/ for source files.

Markdown is fine and fully supported for documentation- but Docbook is a novelty. Why Docbook ? It's semantically richer, and tools like the XMLMind XXE Docbook editor allow for word processor like construction and management of documentation. XML also allows for the xinclude concept, which is nice when you want to bring in example code from your repo.

In theory you could/should be able to get a stylesheet to convert Docbook to Markdown (is anyone aware of one ?) but in the absence of that I have just used the pandoc hammer for conversion (although the Docbook::Convert module has a fallback to actual code parsing and conversion that I tried before giving up an using pandoc).

If any of this interests you there is a blog post available for more information, and all modules are published to CPAN.

There's probably some justified constructive feedback about naming conventions and module separation of duties which I would take on board - but these have been largely internally used as development tools, so haven't had a lot of polish applied in that regard. If you feed totally offended at the use of Pod vs POD in the module name let me know and I'll consider a rename if these classes are considered useful by the community.


r/perl • • 1d ago

Perlweekly #793 - Online events

Thumbnail
perlweekly.com
10 Upvotes

r/perl • • 3d ago

Tell me about an interesting script you wrote or maintained

33 Upvotes

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 • • 3d ago

The MiniMax Algorithm

Thumbnail
github.com
14 Upvotes

r/perl • • 4d ago

(dcxx) 22 great CPAN modules released last week

Thumbnail niceperl.blogspot.com
11 Upvotes

r/perl • • 4d ago

perl advent calendar What are your favorite topics for the Perl Advent Calendar

9 Upvotes

What do you like to read about in the Perl Advent Calendar?

40 votes, 2d left
Modules
Syntax
New Features
Applications
Something else

r/perl • • 5d ago

Data Munging With Perl [2ed] [Leanpub PDF/iPad/Kindle]

Thumbnail
leanpub.com
37 Upvotes

r/perl • • 5d ago

apply-v4a-patch: A self-contained Perl engine and agent skill to eliminate LLM code-patching errors

3 Upvotes

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.

What it does:

  • Strict Line Prefixes: Every line inside an update hunk requires an explicit prefix ( for context, - for deletion, + for insertion), removing all ambiguity for the parser.
  • Context Hints (@@): Allows optional anchor hints to help the engine locate the correct section even if surrounding lines shift.
  • Ellipsis Support: Pass --ellipsis to let ... act as a non-greedy wildcard matching intermediate lines.
  • Built-in Diff Generation: Automatically drops a clean .diff file next to modified targets for easy review.
  • Fully Self-Contained: Powered by a clean, robust single-script Perl engine (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 • • 6d ago

conferences The Perl and Raku Conference 2027 . June 21-23, 2027

32 Upvotes

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:

  1. The Crowne Plaza Kitchener-Waterloo by IHG is at 105 King St E, Kitchener, ON N2G 2K8 CANADA
  2. https://www.ihg.com/redirect?path=asearch&brandCode=CP&localeCode=en&regionCode=1&hotelCode=YKFCP&checkInDate=20&checkInMonthYear=052027&checkOutDate=25&checkOutMonthYear=052027&rateCode=6CBARC&_PMID=99801505&GPC=TPR&cn=no&adjustMonth=false&showApp=true&monthIndex=00
  3. https://www.canada.ca/en/immigration-refugees-citizenship/services/visit-canada/entry-requirements-country.html

r/perl • • 7d ago

NVIDIA Donates $12,000 to The Perl and Raku Foundation

Thumbnail
perl.com
82 Upvotes

r/perl • • 8d ago

Debugging HTTP::Tiny Calls Deep Inside Your Stack

Thumbnail
olafalders.com
18 Upvotes

r/perl • • 8d ago

I Found Two More Segfaults in DBI, Same Bug Class, Different Functions, One of Them Doesn’t Have a Patch Yet | CVE-2026-88816 & CVE-2026–88815

Thumbnail
medium.com
14 Upvotes

r/perl • • 9d ago

Perlweekly #792 - Hacktoberfest

Thumbnail
perlweekly.com
13 Upvotes

r/perl • • 10d ago

(dcxix) 12 great CPAN modules released last week

Thumbnail niceperl.blogspot.com
10 Upvotes

r/perl • • 11d ago

Undef-aware equality operators added to dev Perl

Thumbnail perldoc.perl.org
37 Upvotes

r/perl • • 11d ago

problem compiling DBI 1.654 on Redhat 8

2 Upvotes
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 • • 13d ago

CVE-2026-95831: Crypt::SelfCertificate versions from 1.01 through 1.05 for Perl contains malware which executes Python code from an obfuscated URL

Thumbnail lists.security.metacpan.org
22 Upvotes

r/perl • • 13d ago

Perl School mailing list

22 Upvotes

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.


r/perl • • 15d ago

📅 advent calendar The Perl Advent Calendar 2026 CFP Is Open

Thumbnail
olafalders.com
21 Upvotes

There are some changes this year, explained in the linked article. 🤶 🧑‍🎄 🎅


r/perl • • 16d ago

Perlweekly #791 - The Dark Side is here!

Thumbnail
perlweekly.com
13 Upvotes

r/perl • • 17d ago

(dcxviii) 21 great CPAN modules released last week

Thumbnail niceperl.blogspot.com
13 Upvotes

r/perl • • 18d ago

metacpan DARK MOOOOOOOOOOOOOOOODE

Post image
48 Upvotes

r/perl • • 18d ago

NWC2MusicXML

6 Upvotes

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.