Recent CPAN uploads - MetaCPAN


Window functions for signal processing

Changes for 0.008001 - 2021-10-18T19:51:22Z

  • Changes:
2021.10.18 18:52


Print a table to the terminal and browse it interactively.

Changes for 0.147 - 2021-10-18

  • Bugfix in 'cols_to_string'.
2021.10.18 18:02


Adds a modern REST API to RT under /REST/2.0/

Changes for 1.15 - 2021-10-18

  • Support custom roles by name on ticket update
  • Add RT Version section
2021.10.18 17:41


attribute-oriented server/client object remoting framework

Changes for 0.27 - 2021-10-18

2021.10.18 17:22


A Mojolicious publish/subscribe channels based on websocket.

Changes for 0.05 - 2021-10-18T16:08:00Z

  • Optimization while sending messages over websocket
2021.10.18 16:12


run Perl script in MBCS encoding (not only CJK ;-)

Changes for 0.34 - 2021-10-19T00:00:00Z

  • supports opendir(my $dir, ...)
  • created by INABA Hitoshi
2021.10.18 16:11


Browse SQLite/MySQL/PostgreSQL databases and their tables interactively.

Changes for 2.286 - 2021-10-18

  • New option 'truncate fractions first'.
  • Update options menu.
2021.10.18 14:33


Print a table to the terminal and browse it interactively.

Changes for 0.146 - 2021-10-18

  • New option 'trunc_frac_first'.
  • Search regex without 'qr'.
  • Code refactoring.
  • Update documentation.
2021.10.18 14:31


Choose items from a list interactively.

Changes for 1.743 - 2021-10-18

  • Update Documentation.
  • Search regex: no 'qr'.
2021.10.18 14:31


OpenSMILES format reader and writer

Changes for 0.6.0 - 2021-10-18

  • Allowing multi-digit hydrogen counts if enabled via parser option.
  • Standardizing chiral markers for allenal carbons.
  • Not standardizing chiral markers in raw output.
  • Reporting '@' and '@@' chiralities with other than 4 neighbours as they cannot be processed right now.
2021.10.18 14:01




























Active questions tagged perl - Stack Overflow

extract first sequence only from a fasta file

Perl convert datetime with pm to gmtime

Unnecessary ioctl(n, TCGETS) Calls On Socket Handles

Perl Apache script runs from browser-perfroms as expected closes a running perl instance but when trying to launch a new perl instance it does nothing

Komodo and program arguments

How to divide an array in to two different arrays in Perl

What's the most reliable method for cross-platform alarm signal handling or execution timeouts in Perl?

In Perl when you return a hash from a sub what is the "quick way" to acess a specific value?

How to compare a couple binary bytes in code?

Perl eval scope

How to grep/perl/awk overlapping regex

Using a collating sequence specified in an LDML file for doing a line sort

Unable to read client's message using AnyEvent::Socket and tcp_connect (to a UNIX domain socket)

Why does modern Perl avoid UTF-8 by default?

Perl printf to use commas as thousands-separator

read and write excel file in perl

Is there better way to save the substitution part of regular expression in Perl?

Date Matching lines without a date [closed]

Exclude files that end with a certain file extension

greedeness vs. early [duplicate]

News and Blogs

Articles on - programming news, code and culture

Perl / Unix One-liner Cage Match, Part 2

In Part 1, I compared Perl’s regexp features with sed and Awk. In this concluding part, I’ll cover examples that make use of Perl’s extensive built-in features and third-party modules.

Bigger library

Perl has a much bigger collection of built-in functions compared to Awk. For command-line usage, I often need tr, join, map and grep. I like that arrays and hashes are distinct in Perl and applying sort on these data types is much simpler compared to Awk.

Append items to a list

This problem wants to append columns to rows that have too few, like the b, c and d rows:


This app…

2021.05.25 02:54

Perl / Unix One-liner Cage Match, Part 1

A shell (like Bash) provides built-in commands and scripting features to easily solve and automate various tasks. External commands like grep, sed, Awk, sort, find, or parallel can be combined to work with each other. Sometimes you can use Perl either as a single replacement or a complement to them for specific use cases.

Perl is the most robust portable option for text processing needs. Perl has a feature rich regular expression engine, built-in functions, an extensive ecosystem, and is quite portable. However, Perl may have slower performance compared to specialized tools and can be more verb…

2021.05.12 02:54

Downloading and Installing Perl in 2021

[This article is part of our Popular articles project to update for contemporary practices]

If you’re reading this article, you’re likely looking for a simple way to download and install the Perl programming language. Or you already have Perl installed as part of your operating system, but it’s older than the currently-supported versions (5.32.1 or 5.30.3) and you’d like to use the latest and greatest features. The download options may seem daunting, especially if you’re new to computers or programming. We’ll take things step by step, and soon you’ll be on your way to…

2021.04.27 04:05

Interview: Trying to Catch Paul "LeoNerd" Evans

Paul “LeoNerd” Evans is a CPAN author, blogger, and core Perl contributor. He introduced the experimental isa operator in Perl 5.32 and the try/catch syntax in an upcoming version.

Tell me a little about yourself and your background; whatever you feel comfortable sharing.

Lets see—I’m going to do this in reverse chronological order.

Currently I’m a self-employed contractor, splitting my time between Perl and other computery things, and electronics. Most of the jobs I’ve had before I did that were based on Perl, with the minor exception of a little Internet startup company called &ldqu…

2021.03.30 01:24

Why I wrote Net::Google::CivicInformation

Before I became a computer programmer, I tried my hand at being a human programmer, in the form of a wordsmith, as I called myself then. I had various jobs as a writer, editor, translator and journalist, but I met with little success, for two main reasons. In those days you needed a publisher to find your work interesting enough to publish before anyone could read it, and that was a pretty high bar. And in the second place, it was difficult to get the humans to react to the content I wrote (I’m still exercised that the movie reviewer would get more letters to the editor than I did after…

2021.03.09 19:35

The Hijacking of

For a week we lost control of the domain. Now that the incident has died down, we can explain some of what happened and how we handled it. This incident only affected the domain ownership of and there was no other compromise of community resources. This website was still there, but DNS was handing out different IP numbers.

First, this wasn’t an issue of not renewing the domain. That would have been a better situation for us because there’s a grace period.

Second, to be very clear, I’m just an editor for the website that uses the domain. This means that I’m…

2021.02.28 08:59

The Perl Foundation

Raku CI Bot Grant Report for September 2021

Regarding his Raku CI bot grant, Patrick Böker writes:

In September I:

  • got the OBS interfacing component working, and
  • got the GitHub interfacing component working.

I hoped to manage to put a working system together this weekend. (Currently only integrating GitHub and OBS, so no separate Website and no interactive features yet.) That didn't quite work out, but there is not much missing. So I'm hopeful to do so in the coming days.

2021.10.11 03:36

Raku Dispatch and Compiler Improvements: Final Grant Report Jonathan Worthington

Jonathan completed the work on his grant. The changes were merged into Raku and will be productive in the next Raku release. We thank the sponsors for supporting this grant, Jonathan for his work; and also the other volunteers who helped with various tasks so this big change could be merged.

Raku Dispatch and Compiler Improvements Grant Update

During September, I completed the remaining hours on my current grant. The key aim of the grant - to bring my work on a new generalized dispatch mechanism to the point where it could be merged and delivered to Raku users - has been achieved, the merge taki…

2021.10.07 01:47

Maintaining Perl 5 Core (Tony Cook): September 2021

``` Approximately 40 tickets were reviewed, and 7 patches were applied

[Hours] [Activity] 7.45 #18606 produce another case where the implementation fails, comment, try to work on a fix #18606 research, code on making a new stub cv #18606 more try to make stub cv #18606 get it seemingly working, needs more tests 0.31 #18746 reply to comment #18746 review and apply to blead 4.26 #18820 reply to comment #18820 review new changes, look over related code #18820 try benchmarking #18820 more try benchmarking, can’t come to any conclusion either way 0.55 #18827 review and review discussion, research an…

2021.10.03 21:02

Season of Docs project supporting newcomers and perl docs team

Work continues at pace on the comprehensive audit of Perl's core documentation collection, which is funded through Google’s Season of Docs. The project was announced and began in May. As planned, it is expected to complete before the end of November.

Technical writer and communications specialist, Khawar Latif Khan is working in stages and has completed a full content audit alongside members of the community who have helped to test and review the documents, followed by a gap analysis, reviewing what is missing and where documents should be held.

Khawar began work on the project in mid-May. He sa…

2021.09.30 05:20

CAT open session – your thoughts and ideas


20 October 2021, 1730 UTC

TPF is hosting this community open session to discuss the Community Affairs Team (CAT) and next steps. We want your thoughts and your ideas.

It would be great to see a broad section of the community, including people who don't normally engage in these discussions. If you have something to say, this is your opportunity.

2021.09.27 04:56

Maintaining Perl 5 Core (Tony Cook): August 2021 Report

Tony reports his August progress on maintaining the Perl 5 core: ``` Approximately 40 tickets were reviewed, and 7 patches were applied

[Hours] [Activity] 7.45 #18606 produce another case where the implementation fails, comment, try to work on a fix #18606 research, code on making a new stub cv #18606 more try to make stub cv #18606 get it seemingly working, needs more tests 0.31 #18746 reply to comment #18746 review and apply to blead 4.26 #18820 reply to comment #18820 review new changes, look over related code #18820 try benchmarking #18820 more try benchmarking, can’t come to any conclusion…

2021.09.26 09:00

Perl Weekly Challenge 134: Pandigital Numbers and Distinct Term Count

These are some answers for Week 134 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a few days from now (on October 17, 2021 at 23:59). This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.

Task 1: Pandigital Numbers
  • Write a script to generate first 5 Pandigital Numbers in base 10.*

As per the, it says:

A pandigital number is an integer that in a given base has among 
its significant digits each digit used in…
2021.10.15 23:56

Monthly Report - September

Finally enjoying again ...

The month of September is very special to me personaly.


Well, I got married in the very same month 18 years ago. The best part is, I choose the day 11 to get married. I have never missed my wedding anniversary, thanks to all the TV news channel.


On the day, every year I find every TV news channel talk about 9/11 episode. It works like reminder to me.

Let's get back to the main topic ...

For the last few months, I have been late in making monthly report on time. This has created many problems for me. One of them and the most important is that I don't remember what…

2021.10.15 12:10

My Favorite Warnings: uninitialized

This warning was touched on in A Belated Introduction, but I thought it deserved its own entry.

When a Perl scalar comes into being, be it an actual scalar variable or an array or hash entry, its value is undef. Now, the results of operating on an undef value are perfectly well-defined: in a nuneric context it is 0, in a string context it is '', and in a Boolean context it is false.

The thing is, if you actually operate on such a value, did you mean to do it, or did you forget to initialize something, or initialize the wrong thing, or operate on the wrong thing? Because of the latter possibiliti…

2021.10.14 23:35

Perl Weekly Challenge 133: Integer Square Roots and Smith Numbers

These are some answers for Week 133 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a few days from now (on October 10, 2021 at 23:59). This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.

Task 1: Integer Square Root

You are given a positive integer $N.

Write a script to calculate the integer square root of the given number.

Please avoid using built-in function. Find out more about it


Input: $N…
2021.10.09 02:55

My Favorite Warnings — A Belated Introduction

Look, that's why there's rules, understand? So that you think before you break 'em. — Terry Pratchett, in Thief of Time.

A couple installments into this series of blog posts, I realized an introduction to Perl warnings would be appropriate, with some words on how to turn them off, and why you probably do not want to. Yes, this should have been the first post in the series, but I didn't know it would actually be a series, and, well, maybe better late than never.

The Perl compiler/interpreter can emit warnings when it finds things that may indicate a problem with the code. These are not (yet) enab…

2021.10.07 00:38

Perl Weekly Challenge 132: Mirror Dates and Hash Join

These are some answers for Week 133 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

Spoiler Alert: This weekly challenge deadline is due in a few days from now (on October 3, 2021 at 23:59). This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.

Task 1: Mirror Dates

You are given a date (yyyy/mm/dd).

Assuming, the given date is your date of birth. Write a script to find the mirror dates of the given date.

Dave Cross has built cool site that does something similar.

Assuming today is 2021/09/22.

Example 1:

Input: 202…
2021.10.02 02:22

Perl Hacks

Replacing CPAN RT

[Update: the CPAN Request Tracker was saved. It’s now run by a new team of volunteers and none of my suggestions below are required.]

Two weeks ago, we learned that the CPAN Request Tracker was closing down early next year. I proposed a plan that CPAN authors could follow to ensure that their users can still find somewhere to report bugs in modules (and, perhaps more importantly, to see what bugs have already been reported in modules).

But that’s only part of the problem. In fact, it’s probably a minor part of the problem. If you’re an active CPAN author, then you probably already knew about the…

2020.12.16 17:24

RT – Action Plan for CPAN Authors

CPAN RT is going away. CPAN authors have until the beginning of March to extract any useful information from it.

RT is the “Request Tracker”, a bug tracking system that is written by Best Practical. For almost as long as I can remember, anyone who uploads a module to CPAN gets a free ticket queue for their module at MetaCPAN assumes that’s where people should report bugs in your module and helpfully adds an “issues” link that goes to the appropriate page in RT.

But now that system is going away. It will be switched off on the 1st March 2021. The Perl NOC team is spread pretty thinly…

2020.12.06 12:40

Down the rabbit hole

Blog posts are like busses. You wait months for one and then two come along on consecutive days!

Yesterday I wrote about how we didn’t need a blogging platform for the Perl community – all we really needed was a good-looking feed aggregator. I mentioned Perlsphere as one such aggregator.

Then Matthew commented, saying that Perlsphere looked a bit broken as Dave Cantrell’s posts from a few years ago frequently pop up there as new posts. I had a quick look at the problem and couldn’t quite work out what was going on. His web feed seems valid, but Perlsphere didn’t seem to recognise the dates of th…

2020.09.18 15:24

Blogging for Perl

I think it was at YAPC Copenhagen in 2008 that a small group of us first discussed the idea of building a shared blogging platform for the Perl community. It was over a year later that we launched

I remember a lot of discussions over that time where we tried to thrash out exactly what we wanted to build. I know that one of my main drivers was that I wanted to replace the journals feature of use.perl. For those of you too young to remember, use.perl was a Perl community web site from the dawn of time. The site ran Perl news on its front page, but users could also have their own j…

2020.09.17 20:10

The Best of Perl Hacks

What do you do when you’re stuck inside because Coronavirus means that your country is in lockdown? Well, you write a book, of course. Or, to be more accurate, you cobble together fifty or so old blog posts into a book.

So that’s what I’ve done. Now you can read some of your favourite Perl Hacks blog posts in a handy Kindle book. Other ebook marketplaces are, of course, available – but I haven’t had the time to make a version that’s available from anywhere else yet. That might follow if enough people ask for it.

The book is, predictably, called The Best of Perl Hacks and it’s available from Amaz…

2020.04.07 15:05

PerlCon Europe 2019

Last week I was in Riga for this year’s European PerlCon (the conference formerly known as YAPC::Europe). As has become traditional, here’s my report of the conference.

My conference began on Tuesday night at the pre-conference meet-up. Most people get into town on the night before the conference starts and the organisers always designate a local bar as a meeting place. This time, as the conference was being held in a hotel, the meeting place was a room in the hotel just outside the main conference room. It’s always good to meet up with friends who you might not have seen since the previous con…

2019.08.11 13:40

Perl Weekly newsletter

#534 - Are you CPAN contributor?

Hi there

How much have you contributed during the Hacktoberfest event yet?

CPAN needs a helping hand, not just during Hacktoberfest. I am raising the subject as Dave Cross recently blogged about his experience with one of the distributions hosted on CPAN in this blog post. It also reminds me of my early days when I created Perl a library around some of Google's public APIs. Two of them, WWW::Google::CustomSearch and WWW::Google::Places were used by many people, as I have had many queries related to them in the past. It is very common for an API provider to discontinue the service or move in a ne…

2021.10.18 10:00

#533 - Consulting work


I just had a meeting with a company in the UK that were looking for some consulting in Perl. After our conversation I felt that what they are interested in is not really where my expertise is, so I referred them to two other people who have a lot more experience in those areas. However I realized I don't know who is providing consulting or development service these days. So let me know. Who knows next time I might be able to refer the clients to you.

On the other hand I just found out that my client, where I do some refactoring on a web-application with some machine-learning backend (written…

2021.10.11 10:00

#532 - Hacktoberfest 2021

Hi there

Have you joined the annual Hacktoberfest 2021 run by Digital Ocean?

If not then please join without any further delay. Hacktoberfest encourages participation in the open source community. You can earn a limited edition T-shirt by completing the challenge.

Not sure if you noticed, but this time they have made an interesting change by allowing open source maintainers to also take part in the contest. Ever since I started The Weekly Challenge, I have hardly found time to dedicate to Hacktoberfest. Last year I could only submit 6 PRs, enough to win the contest, since you only need to submit…

2021.10.04 10:00

#531 - Legacy code

Hi there

I like working on legacy code whether it is Perl, Python or some other language, because it is code that is already very valuable to the organization that uses it. It is great to help the maintainers understand the code better and to give them confidence in making changes to the code.

There are a number of language specific tools that can help you while dealing with legacy code. For example Perl Critic which is mentioned in at least two posts this edition. There are more generic things, like setting up a good CI system which is mentioned by Gugod.

The ideal situation is when both managem…

2021.09.27 10:00

#530 - Outreachy 2021

Hi there

If you remember, I mentioned the Outreachy program in the editorial of the weekly newsletter edition #522. It has finally come to an end as Rosheen Naeem successfully completed the internship as reported by the TPF in a blog post. Congratulations Rosheen.

The Perl Foundation is looking for mentors and project ideas for the next Outreachy rounds. If you have Perl or Raku project ideas, please get in touch with TPF.

Many years ago, I was approached for help by the Open Food Facts team as they found out about my distribution, Food::ECodes. Unfortunately it didn't work out as I was too busy…

2021.09.20 10:00

#529 - KöMaL for the math enthusiasts

Hi there!

A long long time ago, when I was in high school, I participated in the annual competition of KöMaL, the Mathematical and Physical Journal for High Schools. (Look for the little UK flag for the English version). Back then we sent in the solution by snail-mail and we only had to write our name to be identified. However people with very common names were asked to include a 3-digit number between their names. There was no verification that two people with the exact same name did not pick the same number, but the chances were slim. Because my name is way too common in Hungary I picked the…

2021.09.13 10:00


Live coding session with Gabor Szabo

Today I was invited to join Gabor Szabo for a live pair programming session, where we worked on adding Docker and CI to his course management application. You can view the video of our informal competition who is the worst typist here.

At first I was bit skeptical about the concept of live coding (who wants to watch people google^w code for two hours?), but in the end it was a funny and informative (for me) session. Maybe I'm just totally deprived of live human interaction (thanks, Corona), but I think I'd enjoy similar sessions also under normal circumstances.

Things I learned
  • I forgot a lot of…

Two Dist::Zilla questions (META.yml; user config)

During the great RT will be shutdown craze earlier this year, I updated my Dist::Zilla setup to use a custom author bundle (Dist::Zilla::PluginBundle::Author::DOMM) so I can unify my Dist::Zilla config in one place (instead of copying dist.ini from project to project, adding & modifying it from time to time, but never backporting improvements to older projects).

Two of my decisions might have been not too smart (as indicated by various pull requests), so I'm now looking for feedback...

META.yml vs META.json?

I stopped generating META.yml files and now only generate META.json. As far as I can tell…

Bulk downloading all episodes of a podcast

In some regards, I'm a very old school person. For example I do not like the concept of streaming audio (via Spotify I want MP3s on my hard disk (and/or vinyl on my record player). I want access to my music when I'm offline (and I'm offline a lot) and without using a so-called smart phone (I prefer vintage USB-stick MP3 players). My partner thinks the same (I guess 25+ years of my propaganda had some influence..).

But "modern" sites make it rather hard to actually download content (even if it's free). They offer links to a myriad of apps, but often no download button. At least a lot of…

Advent of Code Day 12 - sailing to a pause

This was another fun one. It took me some time to get the logic right (or left?), but in the end I came up with a nice solution. BTW, this will be the last daily blog post, as I'll have to finish some work projects, and start with some holiday projects.

Part 1
my @in  = map { [/^(\w)(\d+)$/] } <>;
my @dir = qw(N E S W);
my $cur = 1;
my $r   = 0;
my $c   = 0;

We again parse the map into a list of ops and values. Then we set up some things we'll need, like the list of directions and the current heading ($cur) which is an index into the dir-array. $r and $c

Advent of Code Day 11 - slow SeatGoL

Finally, some Game of Life

Part 1

Today I needed quite a bit of code, so let's split it up:

my @map = map { chomp; [ split // ] } <>;
my $h   = @map;
my $w   = $map[0]->@*;
my $occ = 0;
my $max = 4;
my @around =
    ( [ -1, -1 ], [ -1, 0 ], [ -1, 1 ], [ 0, -1 ], [ 0, 1 ], [ 1, -1 ], [ 1, 0 ], [ 1, 1 ] );

After getting the input and storing it into a 2-dimensional list, I set up some other things we'll need: the **h**eight and **w**idth of the map, the number of occupied seats, the maximum number of neighbors and a list of "vectors" to look around (left… Blog


Das System-Perl zu verwenden hat viele Nachteile. Diese können behoben werden, wenn man ein eigenes Perl in seinem Benutzerverzeichnis installiert. Mit dem Werkzeug `perlbrew` kannst du mehrere Perl-Installationen nebeneinander auf einem System konfliktfrei betreiben.
2021.07.14 10:00

Bericht vom Deutschen Perl-/Raku-Workshop 2021

Der Deutsche Perl-/Raku-Workshop ("German Perl Workshop", GPW) ist eine Institution in der Perl-Community: Seit 1999 gibt es diese Konferenz rund um Perl (und seit ein paar Jahren Raku). Damit ist der GPW eine der ältesten Perl-Veranstaltungen überhaupt.
2021.06.23 10:00

Kommandozeilenwerkzeuge mit App::Cmd

Das Schreiben von CLI-Tools erfordert einiges an Infrastrukturcode, um ein komfortables Tool mit Kommandos zu erstellen. Teile dieses Codes gleichen sich bei der Implementierung von Unterkommandos. Die Distribution App::Cmd hilft mit Mitteln der objektorientierten Entwicklung dabei, ein komfortables CLI-Tool schnell und erweiterbar zu implementieren.
2021.02.15 10:00

An Modul-Autoren: Badges für CPANCover

Sowohl für Nutzer als auch für Entwickler ist es ganz schön, wenn auf einen Blick der Zustand eines Moduls ersichtlich ist: Sind Fehler bekannt? Kann das Projekt gebaut werden? Wie ist die Testabdeckung?
2021.02.09 10:00

CPAN-News Januar 2021

Der Januar ist rum, Zeit mal nachzuschauen was wir im Januar so alles auf CPAN geladen haben.
2021.02.06 10:00

Sicherheit für Perl-Anwendungen: fail2ban

Ist eine Webanwendung öffentlich erreichbar, wird es nicht lange dauern und irgendwelche Bots versuchen sich anzumelden. Oder es werden wild irgendwelche URLs aufgerufen. Auch wenn die Anmeldeversuche wahrscheinlich scheitern, geht die Bot-Aktivität zu Lasten der Webanwendung. Und mit genügend versuchen klappt es vielleicht doch mal, dass sich jemand Unbefugtes anmeldet.
2021.02.03 10:00

DEV Community

Release 1.57 of perl-workflow, a bug fix release

Due to extreme workload at my job, we have not made as much progress as we would like.

My tireless collaborator Erik Huelsmann have fixed a few bugs and they have made into release 1.57 released today.

We hope to pick up on the forthcoming 2.0 release as soon as things settle at a somewhat normal level again.

Here follows the change log of release 1.57.

Change Log

The original is available on GitHub

1.57 2021-10-17 Bug fix release, update recommended
  • P…

2021.10.17 14:11

Using Google Drive with Perl

I often use Google Drive to transfer files between devices, for example from my Mac to my Linux laptop. It works great, but there can be some boring repetitive work involved depending on how often you do the same operation. For example, when I want to transfer a file from the Mac, I open up a web browser (usually Google Chrome) and point it to, the Google Drive web interface. From here, I try to locate the directory I want to upload the file to which might involve some scrolling in the directory listing. After that, I need to click on the directory name to view its content. Ne…

2021.10.14 22:23

Read The Fantastic Manual: How to get the most out of Perl documentation

Whether learning a programming language, working through a problem, or trying to understand a new library, it may be tempting to flail around crafting just the right search engine query or cry for help on a forum like Stack Overflow. But look at any guide to asking good questions and you’ll find this commandment at the top: do your research. And one of the primary sources of that research is the official documentation for the language or library in question.

The perldoc command

Fortunately, Perl and its modules come installed with extensive documentation, also available on the Web. Locally, yo…

2021.10.12 14:00

The ephemeral miniconf - The roaar flyer !

Earlier today I took my best drawing software (Gimp), gathered all my skills and it's finally time to unveil the ephemeral miniconf flyer!

The ephemeral miniconf flyer

Spread the word with this flyer!

2021.10.11 08:00

In-place editing with Dancer2 and jQuery

I really enjoyed reading Mark Gardner's blog post about web frameworks this week, but in one way it made me feel slightly sad.

It made me sad because it got me thinking about how a lot of Perl web development seems to be stuck in the past. Oh, don't get me wrong - I know that modern Perl web frameworks allow you to do anything that you could do with technologies like Node.js. But I don't know how widely-known that information is. If you spend much time reading the Perl questions on Stack Overflow, you'll soon realise just how much Perl web development still consists of CGI programs running in a…

2021.10.10 13:28

Weekly Challenge 133

Challenge, My solution

TASK #1 › Integer Square Root Task

You are given a positive integer $N.

Write a script to calculate the integer square root of the given number.

Please avoid using built-in function.

My solution

So that wikipedia page has enough formulas to get a math nerd very excited. For me it looks a little to complex to understand. So I took a very simple approach. Start from one, and keep counting upwards while the square of the next number is equal or less to the input value.

This seems reasonably efficient for what we are doing. Even finding the integer square root of 10,000,000,00…

2021.10.09 07:14


A Couple of Brute Force Computations

The examples used here are from The Weekly Challenge problem statement and demonstrate the working solution.

Part 1

Write a script to generate first 5 Pandigital Numbers in base 10.


use strict;
use warnings;
# Write a script to generate first 5 Pandigital Numbers in base 10.
use boolean;

sub first_n_pandigitals {
    my ($n)         = @_;
    my $found       = false;
    my $pandigitals = [];
    my $x           = 1_000_000_000;
    do {
        my $test = $x;
        push @{$pandigitals}, $x
          if ( $test =~ tr/0//d ) > 0
          && ( $test =~ tr/1//d ) > 0…
2021.10.17 13:03

These Binary Trees are Odd

The examples used here are from The Weekly Challenge problem statement and demonstrate the working solution.

Part 1

You are given an array of positive integers, such that all the numbers appear even number of times except one number. Write a script to find that integer.


use strict;
use warnings;
sub find_odd_occurring{
    my %counts;
    for my $x (@_){
    for my $x (keys %counts){
        return $x if $counts{$x} % 2 != 0;

    print find_odd_occurring(2, 5, 4, 4, 5, 5, 2) . "\n";
    print find_odd_occurring(1, 2, 3, 4, 3, 2, 1, 4, 4) . "\n…
2021.09.19 12:37

Two Exercises in Fundamental Data Structures

The examples used here are from The Weekly Challenge problem statement and demonstrate the working solution.

Part 1

You are given a tree and a node of the given tree. Write a script to find out the distance of the given node from the root.


use strict;
use warnings;
package Tree129{
    use boolean;  
    use Tie::RefHash;
    use Class::Struct; 

    package Node{
        use boolean;  
        use Class::Struct; 
            value => q/$/,

    package Edge{
        use boolean;  
        use Class::Struct; 
2021.09.12 23:53

A Platform for Every Departing Sub-Matrix

The examples used here are from The Weekly Challenge problem statement and demonstrate the working solution.

Part 1

You are given m x n binary matrix having 0 or 1. Write a script to find out maximum sub-matrix having only 0.


use strict;
use warnings;
use Tree::Suffix; 

sub maximum_sub_matrix{
    my @matrix = @_;
    my @sub_matrix;

    my %indices;  
    my @indices_maximum;
    my $indices_previous = "";
    my $indices_current = "";
    my $tree = new Tree::Suffix(); 
    for my $i (0 .. @matrix - 1){
        $indices_current = "";
        for my $j (0 .. @{$matrix[0]} - 1…
2021.09.05 23:59

Conflicting Lists and Intervals

The examples used here are from The Weekly Challenge problem statement and demonstrate the working solution.

Part 1

You are given two sets with unique numbers. Write a script to figure out if they are disjoint.


use strict;
use warnings;
use boolean;

sub disjoint{
    my($list1, $list2) = @_;
    my @a = map { my $n = $_; grep  $n == $_ , @{$list2} }  @{$list1};
    return boolean(@a == 0);#boolean() used for better stringification

    my(@S1, @S2);
    @S1 = (1, 2, 5, 3, 4);
    @S2 = (4, 6, 7, 8, 9);
    print disjoint(\@S1, \@S2) . "\n";
    @S1 = (1, 3, 5, 7, 9);
2021.08.29 17:18

Count Numbers / MineSweeper game: The Weekly Challenge 126

The examples used here are from The Weekly Challenge problem statement and demonstrate the working solution.

Part 1

You are given a positive integer $N. Write a script to print count of numbers from 1 to $N that don’t contain digit 1.


use strict;
use warnings;
sub has_1{
    my($x) = @_;
    return 1 if $x =~ tr/1//d > 0;
    return 0;   

sub count_with_1{
    my($n) = @_;
    my $x = 1;  
    my $count = 0; 
        $count += has_1($x); 
        $x += 1;
        redo if $x <= $n; 
    return $count; 

sub count_without_1{
    my($n) = @_;
    return $n - count_with_1($n…
2021.08.22 17:39

The Perl NOC

Weekend Outage

You may have noticed that some services were unavailable this weekend.  Email continued to flow, and no data was lost.

The short version of the story is that we were bitten by this bug. and learned a lot about how Kubernetes works while we figured out what the issue was.

Sorry for any inconvenience!

2021.05.09 21:29

CPAN Mirror List Changes

We sent the below email to all the CPAN Mirror contacts yesterday:

An Important Update about the CPAN Mirror List

You're receiving this email because you're listed as a contact point for a CPAN mirror. Thank you! The mirror network has been a huge part of CPAN’s success. Soon, the way clients use CPAN mirrors is changing. You don't need to do anything, but after reading this email, you might want to.

Some background: For a long time, when the CPAN client (aka started up for the first time, it prompted users to configure it by picking a nearby mirror. The assumption was that it would be b…

2021.02.22 09:39 hijacked

 The domain was hijacked this morning, and is currently pointing to a parking site.  Work is ongoing to attempt to recover it.

 We encourage you NOT to visit the domain, as there are some signals that it may be related to sites that have distributed malware in the past.

  Some users may have it selected as their CPAN mirror.  To update your mirror in use o conf urllist

# perl -MCPAN -eshell
cpan shell -- CPAN exploration and modules installation (v2.20)
Enter 'h' for help.

cpan[1]> o conf urllist
Please use 'o conf commit' to make the config perma…

2021.01.27 20:01 will sunset on March 1st, 2021

Update 2/21/2021:

Updated information about the future of can be found at

Update 2020-12-13: will be sunset on March 1st, 2021 due to low and declining use.

Back when we started this service, it filled a need by providing a place for CPAN authors to track bug reports and feature requests. In recent years and other sites have added issue tracking to their git repo hosting and many CPAN authors have migrated to these sites.

If you are a CPAN author, there are several tools to help you migrate existing tickets:

    • h…
2020.12.04 17:40 email supported by Pobox

Earlier this year we quietly switched the infrastructure that forwards ${author} email addresses from our home-grown solution to Pobox’s Bulk Forwarding system. Our system wasn’t keeping up with the spam-filtering needs of these widely published email addresses.

Pobox is now detecting over 93% of the incoming email to as spam and taking care of it. That’s tens of thousands of spam emails a day that aren’t forwarded on. (Almost 2.5 million emails a month!) Said another way -- less than 7% of emails sent to are valid!

Beyond improved spam filtering, there’s also better…
2020.04.27 21:19

Perl bugs now on GitHub

For over 17 years, the Perl NOC has hosted an RT instance for Perlbug, the system that tracks and manages Perl bugs and feature requests.  Two weekends ago, it transitioned to GitHub.    Background is available in this thread.
We'd especially like to thank Todd Rinaldo who led the migration and did most of the work.  His attention to detail cannot be understated.  17 years of data (some of which had been migrated to RT from the previous system) required a lot of tweaking and polishing to make it look nice.  His hard work shows in the result.
It's been fun and interesting to support this particular piece…
2019.10.30 20:56

perlancar's blog

List of new CPAN distributions – Sep 2021

dist author first_version latest_version abstract
Acme-CPANModules-PAUSE PERLANCAR 0.001 0.001 Modules that interact with PAUSE, the Perl Authors Upload Server
Acme-PodOnly HAARG 0.001001 0.001003 A distribution that only contains Pod
Alien-PGPLOT DJERIUS 0.01 0.01 Build and Install the PGPLOT library
Alien-PortMidi JBARRETT 0.01 0.03 Install the Mixxx fork of PortMidi
App-Bitcoin-PaperWallet BRTASTIC 1.00 1.01 Generate printable cold storage of bitcoins
App-GhostWork INA 0.01 0.05 Barcode Logger(When,Where,Who,What,toWhich,Why)
App-ShellCompleter-YtDlp PERLANCAR 0.001 0.001 Shell completion for yt-dlp
App-TimeZoneUtils PERLANCAR 0.00…
2021.10.03 01:38

List of new CPAN distributions – Aug 2021

dist author first_version latest_version abstract
AI-Perceptron-Simple ELLEDNERA 1.00 1.02 A Newbie Friendly Module to Create, Train, Validate and Test Perceptrons / Neurons
Alien-RtMidi JBARRETT 0.01 0.02 Install RtMidi
Alien-libvterm PEVANS 0.01 0.01 Alien wrapping for libvterm
App-BPOMUtils PERLANCAR 0.001 0.002 List food types in BPOM processed food division
App-DataDirUtils PERLANCAR 0.001 0.003 CLI utilities related to datadirs
App-FileModifyUtils PERLANCAR 0.001 0.002 Utilities related to modifying files
App-MineralUtils PERLANCAR 0.001 0.005 Utilities related to minerals (and mineral supplements)
App-RouterColorizer JMASLAK 1…
2021.09.01 04:27

List of new CPAN distributions – Jul 2021

dist author first_version latest_version abstract
Acme-PERLANCAR-Dummy-POD PERLANCAR 0.001 0.005 Dummy distribution for various POD testing
App-ClipboardUtils PERLANCAR 0.001 0.001 CLI utilities related to clipboard
App-DiffPDFText PERLANCAR 0.001 0.002 Diff the text of two PDF documents
App-Easer POLETTIX 0.001 0.002 Simplify writing (hierarchical) CLI applications
App-ModuleFeaturesUtils PERLANCAR 0.001 0.003 CLI Utilities related to Module::Features
App-Phoebe SCHROEDER 4.01 4.01 a Gemini-based wiki
App-arxiv2bib SLITTL 0.1 0.2 Extract bibliographic data from the arXiv API
App-efm_perl DELPHINUS 0.01 1.0.0 It's new $module
2021.08.01 00:01

List of new CPAN distributions – Jun 2021

dist author first_version latest_version abstract
Acme-CPANModules-OrganizingCPAN PERLANCAR 0.001 0.001 Efforts to organize CPAN
Acme-CPANModules-RandomData PERLANCAR 0.001 0.002 Generating random person (name, title, age, etc)
Acme-CPANModules-RandomPassword PERLANCAR 0.001 0.001 Generating random passwords
Acme-CPANModules-RandomPerson PERLANCAR 0.001 0.001 Generating random person (name, title, age, etc)
Acme-ELLEDNERA-Utils ELLEDNERA 0.01 0.04 Done for the sake of learning 🙂
Acme-MetaSyntactic-boboiboy PERLANCAR 0.001 0.001 The BoboiBoy theme
Acme-MetaSyntactic-ozark PERLANCAR 0.001 0.001 The Ozark theme
2021.07.01 01:24

List of new CPAN distributions – May 2021

dist author first_version latest_version abstract
0.07-TRIAL2 XMIKEW 0 0 Parse and format MySQL dates and times
0.07-TRIAL3 XMIKEW 0 0 Parse and format MySQL dates and times
Acme-CPANModules-HTMLTable PERLANCAR 0.001 0.001 Modules that generate HTML tables
Acme-CPANModules-ManagingMultipleRepositories PERLANCAR 0.001 0.001 Managing multiple repositories
Acme-CPANModules-PERLANCAR-Dummy PERLANCAR 0.001 0.001 A dummy Acme::CPANModules list for testing
Acme-CPANModulesBundle-Import-MJGARDNER PERLANCAR 0.001 0.001 Acme::CPANModules::* created from MJGARDNER's posts
Acme-CoC-Dice BEDOSHI 0.01 0.02 Dice role module for CoC TRPG.
2021.06.01 00:41

Disk space usage of CPAN authors (May 16, 2021 edition)

Prompted by this post on PAUSE running out of disk space, I thought I'd refresh my own post "Top 50 authors by disk space on BackPAN" (Dec 26, 2019) and add a stat for CPAN too. Hopefully this will be a regular post, ish.


Source: (~14MB as of this writing), but more readily used: (~80KB as of this writing).

Total size of CPAN:

% zcat du-k.gz | perl -lne'@F=split /\s+/, $_, 2; $F[1] eq "." and printf "%.1fGB\n", $F[0]/1024/1024 and last'

So, CPAN is not that big by today's…

2021.05.16 08:48

# where we turn Perl inside out

(ccclxiii) 10 great CPAN modules released last week

Updates for great CPAN modules released last week. A module is considered great if its favorites count is greater or equal than 12.

  1. App::Netdisco - An open source web-based network management tool.
    • Version: 2.050001 on 2021-10-12
    • Votes: 13
    • Previous version: 2.049009 was 6 days before
  2. CHI - Unified cache handling interface
    • Version: 0.61 on 2021-10-13
    • Votes: 51
    • Previous version: 0.60 was 6 years, 4 months, 6 days before
  3. Cpanel::JSON::XS - cPanel fork of JSON::XS, fast and correct serializing
    • Version: 4.27 on 2021-10-14
    • Votes: 39
    • Previous version: 4.26 was 6 months, 2 days before
  4. DateTime::TimeZone - Time zon…
2021.10.17 09:56

(cdlxxxvii) metacpan weekly report

This is the weekly favourites list of CPAN distributions. Votes count: 27

This week there isn't any remarkable distribution

Build date: 2021/10/17 07:52:38 GMT

Clicked for first time:

Increasing its reputation:

2021.10.17 09:52

(dviii) stackoverflow perl report

(ccclxii) 7 great CPAN modules released last week

Updates for great CPAN modules released last week. A module is considered great if its favorites count is greater or equal than 12.

  1. App::Netdisco - An open source web-based network management tool.
    • Version: 2.049009 on 2021-10-06
    • Votes: 13
    • Previous version: 2.049005 was 27 days before
  2. DateTime::TimeZone - Time zone object base class and factory
    • Version: 2.49 on 2021-10-02
    • Votes: 17
    • Previous version: 2.49 was before
  3. Encode - character encodings in Perl
    • Version: 3.15 on 2021-10-08
    • Votes: 54
    • Previous version: 3.12 was 1 month, 30 days before
  4. JSON::Validator - Validate data against a JSON schema
    • Version: 5.02 o…
2021.10.10 00:41

(cdlxxxvi) metacpan weekly report - Dist::Zilla::MintingProfile::FFI

This is the weekly favourites list of CPAN distributions. Votes count: 39

Week's winners (+3): Dist::Zilla::MintingProfile::FFI

Build date: 2021/10/09 22:38:11 GMT

Clicked for first time:

Increasing its reputation:

2021.10.10 00:39

(dvii) stackoverflow perl report

Recent MetaCPAN News

Source code permalinks are here

<p>Versioned permalinks from source code pages are <a href="">now available</a></p>
2020.03.29 00:00

Rendering .md files

<p>We're now rendering .md files as HTML instead of as raw code.</p>
2019.10.18 01:54

The traffic is coming

<p>As <a href="">announced</a> in the Perl NOC, is going to redirect all traffic to MetaCPAN from 25th of June 2018. We are doing lots of work to prepare for this trebling of traffic.</p>
2018.12.02 19:30

MetaHack 2

http: //<br /> <p></p> <p></p>
2017.11.02 19:30

SSL improvements

<p>Our servers have had their SSL configuration upgraded, so we now get an A rating on <a href="">SSL Labs</a>.</p> <p><a href="">Fastly</a> who serve all our content other than the <a href="">api</a> already had tight configs... and now so do we. I'd like to thank then for providing both examples, support and an IRC channel where Donald Stufft from the Python infrastructure team was able to hel…
2014.12.02 19:30

Liquid Web is Sponsoring MetaCPAN

<p>We're immensely pleased to announce that <a href="">Liquid Web Inc.</a> is our newest hosting sponsor. This sponsorship entails 3 powerful machines which are provided and co-located by Liquid Web Inc. Having access to this hardware will allow us greater redundancy in addition to giving us powerful machines to use as a staging area when developing new MetaCPAN features. This is a huge development for us and we'd like to thank Liquid Web Inc. for this very kind donation. More details to come!</p>
2014.11.08 03:00

Perl – *n*x

Quo vadis, Perl?


Foto by Carsten Tolkmit 

We’ve had a week of heated discussion within the Perl 6 community. It is the type of debate where everyone seems to lose. It is not the first time we do this and it certainly won’t be the last. It seems to me that we have one of those about every six months. I decided not to link to many reiterations of the debate in order not to feed the fire.

Before defining sides in the discussion it is important to identify the problems that drives the fears and hopes of the community. I don’t think that the latest round of discussions was about the Perl 6 alias in itself (Raku), but…

2018.11.08 20:18

So, what about (Perl 6) dependencies?

DependenciesWhen I need to program something, most of the time I use Perl 5, Go or Perl 6. Which one depends on the existence and maturity of libraries and the deployment strategy (and I must admit, probably my mood). Most applications I write at work are not that big, but they need to be stable and secure. Some end up in production as an extension or addition to the software that is the core of our authentication and authorisation infrastructure. Some programs are managed by other teams, e.g. of sysadmin-type applications like the monitoring of a complex chain of microservices. Finally, proof of concept…

2017.05.28 11:42

rakudo-pkg: Create OS packages for Rakudo Perl 6 using Docker


There was an interesting discussion on #perl6 ( about the use of rakudobrew as a way for end-users to install Rakudo Perl 6 (see how-to-get-rakudo).

rakudobrew, inspired by perlbrew, is a way to manage (and compile) different versions of rakudo. nine argued that it’s primarily meant as a tool for rakudo developers. Because of the increased complexity (e.g. when dealing with modules) it’s not targeted at end-users. While being a big fan of rakudobrew, I agree with nine.

The problem is that there are no Linux binaries on the download page (there are for MacOS and Windows), so user…

2016.09.05 10:41

Vim as a Perl 6 editor

EDITED on 20170211: syntastic-perl6 configuration changes

If you’re a Vim user you probably use it for almost everything. Out of the box, Perl 6 support is rather limited. That’s why many people use editors like Atom for Perl 6 code.

What if with a few plugins you could configure vim to be a great Perl 6 editor? I made the following notes while configuring Vim on my main machine running Ubuntu 16.04. The instructions should be trivially easy to port to other distributions or Operating Systems. Skip the applicable steps if you already have a working vim setup (i.e. do not overwrite you .vimrc fil…

2016.08.20 23:17

Please test: first release of syntastic-perl6, a vim syntax checker

Vimlogo.svgI think that Perl 6, as a fairly new language, needs good tooling not only to attract new programmers but also to make the job of Perl 6 programmers more enjoyable. If you’ve worked with an IDE before, you certainly agree that syntax checking is one of those things that we take for granted. Syntastic-perl6 is a plugin that adds Perl 6 syntax checking in Vim using Syntastic. Syntastic is the leading Vim plugin for syntax checking. It supports many programming languages.

If the plugin proves to be useful, I plan on a parallel track for Perl 6 support in Vim. On one hand, this plugin will track th…

2016.08.20 21:16

Perl Jobs

Senior Perl Developer, Baltimore, MD, USA (Cargotel)

CargoTel, Inc., is a web and mobile SaaS business focused on the automotive logistics industry in North America. We have a robust logistics web platform to which we add hybrid Android and iOS mobile modules. This position is remote – you will need your own computer and a suitable home office. We use Slack as our main communication tool.
We are revamping our SaaS system, mainly by converting to Vue.js pages. We are also developing new tools for presenting data in graphical format. The ideal candidate will have a strong background in Perl, with a working knowledge of Vue.js. Important Note: Cand…

Get your foot in the door! UK/EU Remote Jr. Perl Developer, Canary Warf, London, UK (remote in UK/EU) (Perl Jobs by Perl Careers)

It can be difficult to get your first (or second) developer gig when everyone is looking for commercial experience, and quite honestly, you don’t have any (or much) to speak of. How do you get the commercial experience everyone is looking for when no one will hire you and give you a chance to get any?

We know that a lack of commercial experience doesn’t always reflect skill level, know-how, or programming brilliance. You know your stuff. You’re keen to grow and learn. You know that if someone would only just give you a chance, and let you in the door, you could really shine!

If that sounds lik…

Remote Perl Developer, Warsaw, Poland / Remote (Centuran Consulting)

Join our remote team of Perl developers, working on business-oriented solutions based on the ((OTRS)) Community Edition help desk and ITSM system.
Help us build new versions of the open-source ((OTRS)) Community Edition software and additional packages. Take part in interesting projects, developing custom solutions for our enterprise clients.
We are a technological partner for ManpowerGroup, Enel-Med, UK2 (a THG company), and many more.

- Salary: PLN 8 000 – 11 000 + VAT (B2B) or an equivalent for a different form of employment/contract. Depending on skill level and experience.
- Rem…

Remote Perl Developer, Warsaw, Poland / Remote (Sidnet Solutions)

Join our remote team and get involved in a long-term project for our UK‑based client, leading global e‑commerce company, with whom we have been working since 2014.

We're a software development company based in Poland - technological partner for THG, Medicover Senior, TVN Foundation, Multikino, Kujawski and many more.

200+ projects completed for clients from Poland, UK and US
25+ team members, including 6 team leaders
17 years in business

- Backend development of a large web application built in Dancer framework and Moose
- Implementing new features and making changes in an existing, we…

Perl developer, Houston, TX, USA (BookTrolls, LLC)

BookTrolls is looking to hire top-notch developers to help fuel our rapid expansion. This will not just be a software integration/automation position. We write enterprise-class TCP/IP servers and large, performant back-end applications. We write software for a wide range of business applications for internal users; and both our culture and our development model are pretty informal. Hours are flexible. Our software team is small, fast, flexible, and growing; and we offer a greater degree of creative control and project ownership than you'll find at "big" software companies. Plus, you can ride t…

A job with real flexibility. 100% remote Perl position, Remote within select countries (Perl Jobs by Perl Careers)

Can you touch your toes?

With the kind of flexibility yoga instructors only dream of, we have a job that offers Perl developers the freedom to work the way they want. Forget COVID isolation: this company was 100% remote long before the pandemic, and they have the tools to keep their team running smoothly. Good news, developers: whether you’re in Timbuktu or Toronto, you can work here!

As one of the most popular open-source ticketing systems on the planet, this team knows what it takes to attract organizations of all sizes. With a diverse user base that includes academic institutions, governmen…

Sr Perl Programmer, "Ahmedabad, ANY " (Mavenvista Technologies Pvt Ltd)

Designation: Sr Perl Programmer
Location: Any (Work from Home + If you are looking for a Project Based Options then also its available)

Job Description:

✔ Ability to maintain and manage enterprise level SAAS based web application.
✔ Lead and guide a team of 2 to 3 developers & plan tasks & ensure quality and timely execution of project
✔ Create & guide the team for design of new interfaces, algorithms, architecture of new feature and/or module in the product
✔ Designing and Maintaining MySQL Databases and Tables
✔ Understanding of old code and working to smartly build wrappers around the same…

Perl/Node.js Developer, Bloomington, IL; Dallas, TX; Atlanta, GA; Phoenix, AZ HYBRID (State Farm)

The DevOps team that supports the State Farm Telephone System is a fun, collaborative team functioning within a fast-paced environment leading high-impact work to provide automated, self-service solutions to end-users of our phone system that ultimately reduce administrative support costs across the organization. We are an innovative team functioning in an agile environment working to adopt a continuous delivery change model developing new solutions and modernizing existing applications. Self-driven and innovative individuals with good communication skills and a product mindset possessing expe…