Re-creating the vulnerability CVE-2025-40927 in an isolated docker container. Please check out the link for more information: | blogs.perl.org
Caching in Perl using memcached.| blogs.perl.org
Twenty years is a long time in the world of software. That's how long it's been since I last updated my Perl module, File::Finder. But today, thanks to a bug report from a dedicated user, I'm excited to announce the release of version 1.0.0!| blogs.perl.org
I recently refactored the multi-core benchmarking framework I've been using for my Perl CPU benchmark suite (Benchmark::DKbench) and released it as a separate module: Benchmark::MCE.| blogs.perl.org
Reproduce the vulnerability CVE-2025-40909 in an isolated Docker container running Perl v5.34.0.| blogs.perl.org
Caching with Redis/Valkey using Perl. | blogs.perl.org
Comparative analysis of Storable and Sereal using Perl. | blogs.perl.org
Quick introduction to AWS Lambda using CLI, Python and Perl. | blogs.perl.org
Thanks again to Organic Trader for hosting and providing a venue!| blogs.perl.org
I have decided to write a successor to Pod::Readme that works as a Dist::Zilla plugin that plays well with Pod::Weaver.| blogs.perl.org
I'm resigning from the board position at TPF (The Perl Foundation) also known as TPRF (The Perl and Raku Foundation). tl;dr After eight years with the foundation board, the time has come for me to step down. While I'm leaving...| Makoto Nozaki
In my previous articles (#1 and #2), I covered the key activities of The Perl and Raku Foundation (TPRF), such as organizing conferences, providing grants, and other smaller initiatives. In this final article, I will explore TPRF's financials using publicly...| Makoto Nozaki
Read volume 1 here. In my last post, I talked about some of the big things TPF (The Perl Foundation) does. This time, I'll discuss some of the smaller stuff I've handled at TPF, often with help from others, and...| Makoto Nozaki
This article on the Python Software Foundation inspired me to write this. Serving on the board of a foundation isn't all about glamorous meetings and fancy titles. Still, I'd like to share how I ended up here and what I've...| Makoto Nozaki
I attended YAPC::Hiroshima 2024 in Japan. A few people asked me about the distinctions between YAPC::Japan and other Perl events worldwide, prompting me to write below. Before delving into the specifics, I must preface that my experience is primarily rooted...| Makoto Nozaki
日本のYAPCに参加したのは18年ぶり2度目。 イベント参加者として 世界一成功しているYAPCであるYAPC::Japanの運営を見習うためにボランティアで参加させてもらった。一般参加者の切符を買いますと言ったのだが、主催のkobakenさんに固辞された。神のようなお方 YAPCという名前はやはり良い ボランティアとして 朝7:30に集合だった。早めの行動をしようと7:25に着いたらほと...| Makoto Nozaki
So I visited Perl. More pictures to follow. Perl train station at night Perl train station during daytime From the distance. Right Germany, Left Luxembourg, Behind France...| Makoto Nozaki
I am just back from German Perl Workshop. The workshop is held every year and I finally had a chance to visit it! I had these reasons to go: Meet Perl hackers and community members who I have known online...| Makoto Nozaki
I had the honor to give a talk at Barcelona.pm Meetup. Perl community rocks as everybody knows; my new friends welcomed me and my family. We felt home, learned new things, enjoyed the nice dinner and it became the most...| Makoto Nozaki
I got a fantastic opportunity to give a talk at Barcelona.pm meetup in August. I'll speak about The Perl Foundation, focusing on grants and donations. For those who love technical talks as much as I do, there will be three...| Makoto Nozaki
We have five proposals to review, including the one from July. http://news.perlfoundation.org/2015/09/september-2015-grant-proposals-1.html...| Makoto Nozaki
This is a Japanese summary of Grants Committee Charter, How to write a proposal and Grant Benefits. YAPC::Asiaが目の前に迫ってきました。日本のPerl使いの皆様向けにThe Perl Foundation内のGrants Committeeの活動を紹介します。 以前Grants Committee委員の牧から案内がありましたように、Grants CommitteeはPerlの開発に貢献する個人に1万ドルを上限として助成金の交付を行っています。もちろん日本の皆さんも対...| Makoto Nozaki
Earlier I wrote this blog post, which in summary says value of a Perl software project, as opposed to a Perl infrastructure project, is difficult to quantify until the software is written and used. And it often does not work...| Makoto Nozaki
TPRC Greenville 2025| blogs.perl.org
We all knew Matt Trout differently.| blogs.perl.org
You know how many languages have a "pipe" operator, either ready or in the making? Like PHP, here, for example: https://laravel-news.com/the-pipe-operator-is-coming-to-php-85| blogs.perl.org
I don't know everyone who is involved in maintaining MetaCPAN and I don't know all the details of the performance related issues that have been an ongoing challenge (I believe they have been related to relentless bots?). | blogs.perl.org
I had the pleasure of attending The Perl & Raku Conference (TPRC) 2025 in Greenville, SC as a volunteer. As always, opinions are my own.| blogs.perl.org
Raku Quiz| blogs.perl.org
Lexical Method in the latest release Perl v5.42 RC1. For more details, follow the link: https://theweeklychallenge.org/blog/lexical-method-v542| blogs.perl.org
Quick introduction to AWS DynamoDB using CLI, Python and Perl. | blogs.perl.org
In the past, it took two years to merge my first PAUSE on Plack branch into the master and three years to merge the next PAUSE on Mojolicious (actually, two years to deploy and another year to merge). Now the question was: how long would it take to merge the next big thing, multifactor authentication for PAUSE? Two years, three years, or maybe four years this time? I already had a two-year-old draft branch and initially wished to merge it this year. However, things went differently.| blogs.perl.org
Learning XS - Closures| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This tenth post introduces you to what I call closures in XS.| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This ninth post introduces you to C data types and how to expose them in perl.How do C data types differ to Perl?| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This eighth post introduces you to Perl regular expressions in XS.| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This seventh post introduces you to exporting XSUBS.| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This sixth post introduces you to subroutine invocation in XS.| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This fifth post introduces you to subroutine(method/function) prototypes in XS.| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This fourth post introduces you to overloading operators in XS.| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This third post introduces you to list context in XS.| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This second post introduces the fundamentals of type checking variables in XS.| blogs.perl.org
Over the past year, I’ve been self-studying XS and have now decided to share my learning journey through a series of blog posts. This first post introduces the fundamentals of creating an perl object from XS.| blogs.perl.org
So, what exactly is a Readonly variable in Perl? A readonly variable is one that, once assigned a value, cannot be changed. Any attempt to modify it will trigger a runtime error. This mechanism enforces immutability, ensuring that critical values remain untouched and are protected from accidental or unauthorised alterations.| blogs.perl.org
In the last months of the previous century, I had to learn Perl to be able to teach it to professionals. It was my 28th language to use, but still took two years to understand deeply. As experienced assembler and C programmer, I was astound how much more of my ideas I could achieve with this new Swiss army knife in my hands. I fell in love with Perl.| blogs.perl.org
This is a continuation of a series of articles about how to write XS libraries that are more convenient and foolproof for the Perl users, while not blocking them from using the actual C API.| blogs.perl.org
Intro| blogs.perl.org
What's new in Perl v5.40?| blogs.perl.org
Following up on my previous post (MariaDB 10 and Perl DBIx::Class::Schema::Loader), I wanted to try the 'deploy' feature to create database tables from Schema/Result classes.| blogs.perl.org
DBD::SQLite 1.73_01 (with SQLite 3.42.0) is a release candidate for the next stable DBD::SQLite. This release is mainly to upgrade the bundled SQLite library. I'll wait for about a month and release 1.74 in the middel of September if there's...| Kenichi Ishigaki
Four years have passed since the last Perl Toolchain Summit (PTS) in Marlow. I planned to continue working on PAUSE's web UI, but I didn't exactly remember what to do. So the first thing I did at home before the...| Kenichi Ishigaki
DBD::SQLite 1.71_07 (with SQLite 3.39.4) is a release candidate for the next stable DBD::SQLite. This release is mainly to address a security hole found in SQLite, plus a few performance issues for perl built with -DDEBUGGING. See Changes for other...| Kenichi Ishigaki
DBD::SQLite 1.67_07 (with SQLite 3.36.0) is a release candidate for the next stable DBD::SQLite. This release has a notable change to improve how to deal with Unicode/Latin-1 characters, contributed by Felipe Gasper. If you write a new application, it is...| Kenichi Ishigaki
DBD::SQLite 1.65_03 (with SQLite 3.32.3) is a release candidate for the next stable DBD::SQLite. There are no big changes, maybe except for the ncrease of the default upper bound on the number of parameters from 999 to 32766 (since SQLite...| Kenichi Ishigaki
DBD::SQLite 1.63_05 (with SQLite 3.29.0) is a release candidate for the next stable DBD::SQLite. There are no big changes, maybe except for two new db_config options to disallow double-quoted string literals. use DBD::SQLite::Constants qw/:database_connection_configuration_options/; $dbh->sqlite_db_config( SQLITE_DBCONFIG_DQS_DML, 1 ); $dbh->do('INSERT INTO...| Kenichi Ishigaki
At the Perl Toolchain Summit 2019 in Marlow/Bisham, I added a feature to manage PAUSE permissions per distribution, which I hope makes it easier for you to grant permissions to other contributors. This was the fifth year of my PAUSE...| Kenichi Ishigaki
DBD::SQLite 1.61_04 (with SQLite 3.26.0) is a release candidate of the next stable DBD::SQLite. This release has a security fix for FTS users who allow arbitrary SQL statements from users for some reasons (usually because of a SQL injection vulnerability)....| Kenichi Ishigaki
DBD::SQLite 1.59_03 (with SQLite 3.25.2) is a release candidate of the next stable DBD::SQLite. Notable new features by the upstream are PostgreSQL-style UPSERT (3.24.0), ALTER TABLE table RENAME COLUMN oldname TO newname (3.25.0), and window functions (3.25.0), among others. It...| Kenichi Ishigaki
It's been a year since the last stable DBD::SQLite was released. Actually, it's been a year and a half since the SQLite library bundled in the last stable DBD::SQLite was released by the upstream. A lot have happened there, and...| Kenichi Ishigaki
At the last two Perl QA Hackathons, I worked on porting PAUSE on Plack, to drop old mod_perl and Apache dependencies and make it easier to set up PAUSE on your local environment. It was successful, but more could be...| Kenichi Ishigaki
DBD::SQLite 1.51_06 (with SQLite 3.15.0) is a release candidate of the next stable DBD::SQLite. As always, please test it with your modules/applications and let me know if you find anything, especially if you're using FTS because DBD::SQLite has disabled two-arg...| Kenichi Ishigaki
Last year, at the QA Hackathon 2015 in Berlin, I created a branch for PAUSE to use Plack, and succeeded to make it live on a staging environment. However, we didn't merge it into the master, because we knew we...| Kenichi Ishigaki
Last year at the Perl Toolchain Summit (PTS) in Lyon, I left three draft pull requests: one about the class declaration introduced in Perl 5.37, one about the PAUSE on docker, and one about multifactor authentication. I wanted to brush them up and ask Andreas König to merge some, but which should I prioritize this year?| blogs.perl.org
Let’s have a thought experiment. Assume there is an Open Source-licensed Perl module published on CPAN that you care about, and that hasn’t had any updates in a very long time - what are your options? In this blog post,...| Salve J. Nilsen
The 2018 edition of the Perl Toolchain Summit is over! I’ve posted my report from it on my own blog....| Salve J. Nilsen
Every year we bring together the lead developers of the Perl and CPAN toolchain! This event was previously known as the QA Hackathon, but in 2016 it became the Perl Toolchain Summit (PTS) to more accurately reflect the scope and...| Salve J. Nilsen
We're happy to confirm the venue and date of this year's London Perl & Raku Workshop.| blogs.perl.org
Fixing DBIx::Class::Schema::Loader For Use With MariaDB 10 Client Software| blogs.perl.org
Maintainers and authors are found everywhere throughout our dependency trees. This includes the authors of the tooling others use for maintaining, building, testing, writing and running the infrastructure they depend on. Even maintainers depend on other maintainers.| blogs.perl.org
The Weekly Challenge 145 The Task 2 of the Weekly Challenge #145 asked us to build a Palindromic Tree. It also linked to a blog post explaining the "Eertree" data structure. Maybe it was just me, but I found...| E. Choroba
Product SubArray Given a list of 4 or more numbers, write a script to find the contiguous sublist that has the maximum product. The length of the sublist is irrelevant; your job is to maximize the product. Example Input:...| E. Choroba
Excel Column Write a script that accepts a number and returns the Excel Column Name it represents and vice-versa. Excel columns start at A and increase lexicographically using the 26 letters of the English alphabet, A..Z. After Z, the...| E. Choroba
Linked List You are given a linked list and a value k. Write a script to partition the linked list such that all nodes less than k come before nodes greater than or equal to k. Make sure you...| E. Choroba
Compare Version Compare two given version number strings v1 and v2 such that: If v1 > v2 return 1 If v1 < v2 return -1 Otherwise, return 0 The version numbers are non-empty strings containing only digits, and the...| E. Choroba
Shortest Unique Prefix Write a script to find the shortest unique prefix for each each word in the given list. The prefixes will not necessarily be of the same length. Sample Input [ "alphabet", "book", "carpet", "cadmium", "cadeau", "alpine"...| E. Choroba
Diff-K You are given an array @N of positive integers (sorted) and another non negative integer $k. Write a script to find if there exists 2 indices $i and $j such that $A[$i] - $A[$j] == $k and $i...| E. Choroba
Kth Permutation Sequence Write a script to accept two integers n (>=1) and k (>=1). It should print the k-th permutation of n integers. For example, n=3 and k=4, the possible permutation sequences are listed below: 123 132 213...| E. Choroba
Rotate Matrix Write a script to rotate the following matrix by given 90/180/270 degrees clockwise. [ 1, 2, 3 ] [ 4, 5, 6 ] [ 7, 8, 9 ] For example, if you rotate by 90 degrees then...| E. Choroba
Stepping Numbers Write a script to accept two numbers between 100 and 999. It should then print all Stepping Numbers between them. A number is called a stepping number if the adjacent digits have a difference of 1. For...| E. Choroba
I've written a new blog post on Perl 7 (prev: Perl 7: A Risk-Benefit Analysis and Perl 7 By Default). You can find it, and likely my future posts, on dev.to#perl, for similar reasons as mentioned here. Perl 7: A...| Grinnz
Perl 7 has been announced as the next direction of Perl development. My previous blog post explored at a high level the risks and benefits of the announced direction, as well as those of a more incremental proposal. The primary...| Grinnz
At the recent Conference in the Cloud for Perl and Raku, Sawyer X (the pumpking of Perl) announced an ambitious plan for Perl 7. Since Perl 6 was renamed to Raku to better communicate its fundamental differences from the well...| Grinnz
The official Perl documentation site at https://perldoc.perl.org was recently overhauled. Independently, I put together a reimagined documentation site that would be hosted at https://perldoc.pl. In the interest of providing a documentation site that best serves the needs of the Perl...| Grinnz
CPAN is wonderful and it is vast. Task::Kensho offers a curated look at the best it has to offer for those who don't know what to look for. But to remain useful, it must keep up with the trends of...| Grinnz
The localtime and gmtime built-in functions are interfaces to the POSIX functions for turning a Unix epoch timestamp into date-time components in either UTC or the system local time. When you want to go the other way, there's Time::Local. Well,...| Grinnz
Search is a hard problem. It is the task of getting users to what they want to find, even if they don't know exactly what that is. Its requirements vary widely based on the kinds of things people will want...| Grinnz
I was grateful to attend for the first time the Perl Toolchain Summit, held this year in Marlow, UK at the Bisham Abbey. I got to meet many of the talented and persistent contributors to the Perl CPAN infrastructure, and...| Grinnz
It's long been common to use the LWP::Simple module for quick HTTP requests where you only need to retrieve the contents of a website and put them somewhere. Nowadays I would highly recommend the very neat ojo module from the...| Grinnz
This is a CGI script, let's call it uppercase.cgi: #!/usr/bin/env perl use strict; use warnings; use CGI; use Encode::Simple; use JSON::MaybeXS; use Syntax::Keyword::Try; my $cgi = CGI->new; try { my $input = decode 'UTF-8', scalar $cgi->param('input'); print $cgi->header('application/json; charset=UTF-8'), encode_json...| Grinnz
I've just released revision 3 of the @Starter plugin bundle for the Dist::Zilla CPAN distribution authoring tool. There's no changes to the base configuration from revision 2, but there are now additional options to help manage common authoring tasks using...| Grinnz
perldoc.pl, the alternative perldoc browser, originally leveraged PostgreSQL full text searching. But as I encountered new issues as well as ones I encountered before, I started working to make the search backend swappable. There are now three search backends available:...| Grinnz
For the past decade or more, perldoc.perl.org has been a useful and convenient resource for viewing perl documentation online. However, it has suffered from lack of maintenance and mounting unfixed issues over the past few years. Being familiar with the...| Grinnz
The Task| blogs.perl.org
DBD::mysql has long provided the interface to connect to the MySQL database from Perl code. But as old as it is, it was implemented with some critical bugs that cannot simply be corrected without breaking mountains of existing code relying on those bugs. For this same reason, though DBD::MariaDB corrects these bugs, care must be taken when migrating existing code to avoid subtle breakage.| blogs.perl.org
Season's Greetings, Perl!| blogs.perl.org
A plenv plugin to add additional include directories to Perl.| blogs.perl.org
The Weekly Challenge 189/2| blogs.perl.org