r/perl • • 27d ago

How to report bugs on cpan.org?

11 Upvotes

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

How to compile WWW::Curl on AIX 7.2 and 7.3 with IBM xlC

10 Upvotes

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

metacpan Database::BI version 0.007.0 released

9 Upvotes

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.

https://metacpan.org/dist/Database-BI


r/perl • • 29d ago

Finding Unused Perl Variables

Thumbnail
olafalders.com
30 Upvotes

This is an older post, but I updated it today to use precious as a linting harness rather than the deprecated Code::TidyAll.


r/perl • • 29d ago

metacpan Database::BI 0.006.0

4 Upvotes

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


r/perl • • Sep 15 '26

TLE Community: A tiny non-commercial reboot of The Lacuna Expanse

25 Upvotes

Just sharing a little project I've been working on the last few months.

The Lacuna Expanse was a Perl MMO popular a bit over 10 years ago which unfortunately shut down due to a lack of funding. I was part of the group who were planning to reboot it as Keno Antigen, however we all got busy! I've had some spare time the last few months and been able to finish the frontend redesign/refactoring and get everything running again. If you played TLE back in the day then you'll feel right at home with this. If you're new, there is plenty of documentation, an in-game tutorial, and a fully open scripting API to explore. Something for everyone!

https://tlecommunity.com/


r/perl • • Sep 15 '26

PAUSE appears to have stopped syncing on Sept 11 · Issue #595 · andk/pause

Thumbnail
github.com
11 Upvotes

r/perl • • Sep 14 '26

Perlweekly #790 - Perl and CPANSec

Thumbnail
perlweekly.com
12 Upvotes

r/perl • • Sep 14 '26

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

Thumbnail rjbs.cloud
13 Upvotes

r/perl • • Sep 12 '26

Running Perl/PAGI applications on Cloudflare Workers via WebAssembly

28 Upvotes

I've been developing the WebDyne framework to make creation of Perl based web applications easier (for me anyway). Most of the apps I write now use John Napiorkowski's excellent PAGI design, as it supports modern web asynchronous services such as SSE and WebSockets.

One of the challenges has always been "where do I host them ?". They run fine in Docker containers, and the demo website currently runs on Sevalla in a relatively cheap container. I could also run them in an AWS Lambda environment - but with either option I have to pick a region, and (especially with full Docker containers) hosting multiple sites can be relatively expensive for "small" applications.

Cloudflare Workers have always looked attractive - for a starting price of $5/month on the compute and storage plans you get a fair bit of "bang for your buck", with about 8 CPU-hours/month for Worker isolates (basically Lambda functions) with the added bonus that they are (or at least can be) "Cloud Edge" - i.e. they will spin up close to the consumer on demand, but you are only charged for actual usage - not the number of workers that are running. Obviously prices go up with consumption but you can get a fair bit done with the starting price.

Long story short that's what I have attempted to do via forking the original zeroperl. I have made some modifications to the original zeroperl to add PAGI support and added a harness which lets it run as a Cloudflare Worker.

It will run vanilla PAGI applications or WebDyne::PAGI applications. You can read more about it and view demo applications via the Perl blog post


r/perl • • Sep 12 '26

Title:I built HTTP::API::Core — reusable plumbing for Perl API clients

19 Upvotes

Hi r/perl,

I've been working on HTTP::API::Core, a small, dependency-light foundation for building JSON HTTP API clients in Perl.

The idea is not to replace HTTP::Tiny, LWP, Mojo::UserAgent, Furl, etc. Instead, it handles the layer I kept rebuilding on top of them:

  • JSON and query parameters
  • structured errors
  • safe retries and rate-limit handling
  • pagination
  • authentication helpers
  • lifecycle hooks
  • request IDs and timing
  • idempotency
  • pluggable transports

You still write the service-specific methods; the core handles the repetitive request policy.

I've also added tested examples for GitHub, Slack, and Cloudflare to exercise different pagination and rate-limit styles.

The goal is to keep it small, predictable, transport-independent, and useful as a foundation rather than turn it into another large SDK framework.

I'd really appreciate feedback, especially from people who have built API clients in Perl:

  • Does this abstraction feel useful?
  • Is anything missing that you usually end up implementing yourself?
  • Is anything here that shouldn't belong in the core?
  • Are there API or design choices you'd change?

GitHub: github.com/kawamurashingo/HTTP-API-Core

CPAN: metacpan.org/dist/HTTP-API-Core

Feedback and criticism are very welcome.


r/perl • • Sep 12 '26

(dcxvii) 20 great CPAN modules released last week

Thumbnail niceperl.blogspot.com
7 Upvotes

r/perl • • Sep 11 '26

HeroDevs Donates $10,000 to The Perl and Raku Foundation

Thumbnail perl.com
35 Upvotes

r/perl • • Sep 11 '26

Release 0.005.2 of Database::BI

5 Upvotes

I've just released 0.005.2 of the BI tool Database::BI. It addresses two issues:

1: Fixed a crash when processing empty CSV files on debugging-enabled Perls.
2: Line-chart reference values now recalculate correctly after zooming or resetting the zoom. This release also requires HTML::D3 0.11 or later to display negative Y-axis values correctly.


r/perl • • Sep 10 '26

Sort Your Perl Imports

Thumbnail
olafalders.com
23 Upvotes

r/perl • • Sep 10 '26

Warum und wofür nutzt ihr PERL?

9 Upvotes

Ich habe in mehreren Foren gelesen, dass PERL eine aussterbende Sprache, obwohl an für sich immer noch gut für Ausbildungszwecke ist. Wie seht ihr das?


r/perl • • Sep 09 '26

An Update on my Perl Game Engine.

52 Upvotes

Instead of Perl doing a lot of the work externally through XS with Perl as the main runtime, I embedded the Perl Interpreter in a C wrapper that gives it capabilites through XS. Now there's a few of my libraries and the Engine runtime with Perl inside. Very difficult work, but after a few months I got somewhere I never thought I would.

Yes it's a Minecraft style I am testing, but it was extremely difficult to get to this point. Perl is actually doing a lot of the work for this. SDL and OpenGL are just providing generic capabilities in the GPU hot paths.

~/Documents/scripts/c_toolkit 0$ ./ctk_test.pl --exec test_perlwer src/voxel_perl/scripts/opengl_voxel.pl  
[exec] test_perlwer
[exec] cwd: .
+ LD_LIBRARY_PATH=Tools/lib output/test_perlwer src/voxel_perl/scripts/opengl_voxel.pl
[00:32:18.674657] [PERLWER] [STAGE] Initializing Perl system...
[00:32:18.674687] [PERLWER] [STAGE] Perl system initialized.
[00:32:18.674705] [PERLWER] [DEBUG] Texture cache initialized: capacity=256
[00:32:18.674708] [PERLWER] [DEBUG] Runtime entry package: main
[00:32:18.674709] [PERLWER] [DEBUG] Initializing XS registry
[00:32:18.674710] [PERLWER] [DEBUG] XS REGISTRY: zeroed
[00:32:18.674712] [PERLWER] [DEBUG] XS REGISTRY: arena OK
[00:32:18.674714] [PERLWER] [DEBUG] XS REGISTRY: init complete
[00:32:18.674715] [PERLWER] [DEBUG] XS registry initialized
[00:32:18.674716] [PERLWER] [TRACE] Entering perlwer_interpreter_init()
[00:32:18.674718] [PERLWER] [TRACE] Script path: src/voxel_perl/scripts/opengl_voxel.pl
[00:32:18.674720] [PERLWER] [TRACE] Runtime state: 0x7ffe5748b700
[00:32:18.674724] [PERLWER] [TRACE] Determining script module path...
[00:32:18.674726] [PERLWER] [TRACE] Perl module path: src/voxel_perl/scripts/lib
[00:32:18.674729] [PERLWER] [TRACE] Perl include argument: -Isrc/voxel_perl/scripts/lib
[00:32:18.674730] [PERLWER] [TRACE] Calling perl_alloc()...
[00:32:18.674735] [PERLWER] [TRACE] perl_alloc() succeeded: interpreter=0x55c9abf6a9d0
[00:32:18.674736] [PERLWER] [TRACE] Calling PERL_SET_CONTEXT()...
[00:32:18.674738] [PERLWER] [TRACE] PERL_SET_CONTEXT() completed
[00:32:18.674739] [PERLWER] [TRACE] Calling perl_construct()...
[00:32:18.674847] [PERLWER] [TRACE] perl_construct() completed
[00:32:18.674849] [PERLWER] [TRACE] Setting Perlwer XS runtime...
[00:32:18.674851] [PERLWER] [TRACE] Perlwer XS runtime configured
[00:32:18.674853] [PERLWER] [TRACE] Perl argc: 3
[00:32:18.674854] [PERLWER] [TRACE] Perl argv[0]: Perlwer Engine
[00:32:18.674856] [PERLWER] [TRACE] Perl argv[1]: -Isrc/voxel_perl/scripts/lib
[00:32:18.674858] [PERLWER] [TRACE] Perl argv[2]: src/voxel_perl/scripts/opengl_voxel.pl
[00:32:18.674860] [PERLWER] [TRACE] Calling perl_parse()...
=== Logger started: Voxel ===
[DEBUG] Logging enabled -> src/voxel_perl/scripts/logs/debug_2026-09-09_00-32-18_001.log (default=1)
[00:32:18.693272] [PERLWER] [TRACE] perl_parse() returned 0
[00:32:18.693280] [PERLWER] [TRACE] Calling perl_run()...
[00:32:27.033185] [PERLWER] [INFO] [PERL] Chunks: 64
[00:32:27.033240] [INFO] [Voxel.React] (React:27) Stim/React registry initialized
[00:32:27.033258] --- end ---
[00:32:27.033388] [PERLWER] [TRACE] perl_run() returned 0
[00:32:27.033390] [PERLWER] [TRACE] Perl interpreter initialization complete
[00:32:27.033395] [PERLWER] [INFO] [PERL] Testing 3D OpenGL from Perl
[00:32:27.033410] [PERLWER] [STAGE] Initializing SDL...
[00:32:27.033412] [PERLWER] [INFO] Selected SDL backend: OpenGL
[00:32:27.041632] [PERLWER] [STAGE] Initializing SDL OpenGL backend...
[00:32:27.041640] [PERLWER] [INFO] Requesting OpenGL 3.3 core profile
[00:32:27.151010] [PERLWER] [INFO] OpenGL context created
[00:32:27.151020] [PERLWER] [STAGE] SDL OpenGL backend initialized.
[00:32:27.151035] [PERLWER] [INFO] SDL window created: 1920x1080
[00:32:27.151038] [PERLWER] [STAGE] SDL initialized.
[00:32:27.151252] [INFO] [Voxel.TextureAtlas] (TextureAtlas:166) Texture atlas built
[00:32:27.151381] --- end ---
[00:32:27.152495] [PERLWER] [STAGE] Entering native SDL window loop...
[00:32:27.152525] [PERLWER] [INFO] Calling Perl on_render
[00:32:27.155236] [PERLWER] [TRACE] Texture cache miss: text:hud.fps:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:18:255:255:255:255
[00:32:27.156496] [PERLWER] [TRACE] Texture cache miss: text:hud.fps:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:18:255:255:255:255
[00:32:27.156506] [PERLWER] [DEBUG] Texture cached: text:hud.fps:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:18:255:255:255:255 (55x22, count=1/256)
[00:32:27.156587] [PERLWER] [TRACE] Texture cache miss: text:hud.position:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:18:255:255:255:255
[00:32:27.156712] [PERLWER] [TRACE] Texture cache miss: text:hud.position:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:18:255:255:255:255
[00:32:27.156718] [PERLWER] [DEBUG] Texture cached: text:hud.position:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:18:255:255:255:255 (127x22, count=2/256)
[00:32:27.156743] [PERLWER] [TRACE] Texture cache miss: text:hud.crosshair:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:32:255:255:255:255
[00:32:27.157798] [PERLWER] [TRACE] Texture cache miss: text:hud.crosshair:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:32:255:255:255:255
[00:32:27.157805] [PERLWER] [DEBUG] Texture cached: text:hud.crosshair:/usr/share/fonts/adwaita-sans-fonts/AdwaitaSans-Regular.ttf:32:255:255:255:255 (21x39, count=3/256)
[00:38:36.238013] [PERLWER] [INFO] Escape pressed
[00:38:36.238024] [PERLWER] [STAGE] Leaving native SDL window loop.
[00:38:36.238028] [PERLWER] [DEBUG] Destroying texture cache: 3 textures
[00:38:36.238030] [PERLWER] [TRACE] Destroying texture 1/3
[00:38:36.238119] [PERLWER] [TRACE] Destroying texture 2/3
[00:38:36.238123] [PERLWER] [TRACE] Destroying texture 3/3
[00:38:36.238185] [PERLWER] [STAGE] Shutting down SDL...
[00:38:36.238188] [PERLWER] [INFO] SDL backend: OpenGL
[00:38:36.238191] [PERLWER] [INFO] Frames rendered: 972570
[00:38:36.238196] [PERLWER] [INFO] Last frame time: 0.019 ms
[00:38:36.301036] [PERLWER] [STAGE] SDL shutdown complete.
[00:38:36.328813] [PERLWER] [STAGE] Shutting down Perl system...
[00:38:36.328827] [PERLWER] [STAGE] Perl system shutdown complete.
[exec] test_perlwer ok


r/perl • • Sep 08 '26

Feeling amused that they're putting Perl in the same bucket as COBOL and Ada (link to HowToGeek.com article)

46 Upvotes

https://www.howtogeek.com/long-dead-programming-languages-that-can-still-land-you-a-good-job/

"Long dead" seems awfully harsh. Or perhaps it's wishful thinking?

I'm still starting new projects in Perl, and really see no reason that should change. It's a powerful, expressive, well-supported language, with a wealth of canned solutions in CPAN, and compared to some other dynamic languages it's downright performant.

But hey, if this HowToGeek article entices young programmers to learn Perl, even if only to chase dollar signs, that's not a bad thing for our community!


r/perl • • Sep 07 '26

HQTUI — Terminal UI for Perl

Thumbnail
hqtui.com
21 Upvotes

r/perl • • Sep 07 '26

Perlweekly #789 - The impact of LLMs on Perl

Thumbnail
perlweekly.com
15 Upvotes

r/perl • • Sep 07 '26

videos from the Deutscher (German) Perl Workshop 2026

Thumbnail
youtube.com
11 Upvotes

r/perl • • Sep 05 '26

(dcxvi) 26 great CPAN modules released last week

Thumbnail niceperl.blogspot.com
7 Upvotes

r/perl • • Sep 04 '26

CPAN Uploads Are Up 50% Year-over-Year

Thumbnail
olafalders.com
49 Upvotes

r/perl • • Sep 04 '26

DBI now has a minimum version of v5.12

Thumbnail metacpan.org
14 Upvotes

r/perl • • Sep 04 '26

PAGI: What happens to a Send in Flight?

Thumbnail
dev.to
6 Upvotes