Recent CPAN uploads - MetaCPAN


Extra documentation for Perinci

Changes for 0.006 - 2021-07-28

  • [bugfix] Made the new pages as .pm instead of .pod.
2021.07.28 03:07


Documentation for Sah

Changes for 0.001 - 2021-07-28

  • First release.
2021.07.28 03:05


Extra documentation for Perinci

Changes for 0.005 - 2021-07-28

  • Add :Reference::FunctionMetadata::Examples::PropertyAttributeIndex & :Reference::FunctionMetadata::PropertyAttributeIndex.
2021.07.28 01:57


Facilitates the creation and modification of PDF files

Changes for 2.041 - 2021-07-27

  • Bug reports should now be made at GitHub Issues rather than RT.
  • Rename openpage to open_page in PDF::API2. The old name is deprecated.
  • [RT #136648] Fix when writing PDFs containing cross-reference streams (reported by Chris Papademetrious, fix by Vadim Repin from RT #117184).
  • [RT #44877] GIFs containing comments or plain-text representations will no longer result in an error (reported by Chris Czub).
  • [RT #132844] Fix corruption when a PGM image is included (reported by Jeff Ratcliffe, fix by Vadim Repin).
  • Expand PNM…
2021.07.28 01:08


Extra documentation for Perinci
2021.07.28 00:06


Open a file or URL in the user's preferred application

Changes for 0.002 - 2021-07-05

  • [ux] Give up immediately when xdg-open returns 2 (file not found).
2021.07.28 00:05


Perl client for Playwright

Changes for 0.011 - 2021-07-27

  • Make no attempts whatsoever to install node deps for users, instead giving them advice how to self-service fix their problems.
2021.07.27 23:14


Fast and Minimal file coverage info.

Changes for 0.000024 - 2021-07-27T13:09:10-07:00

  • Fix uninitialized var and warnings in XS (#3)
2021.07.27 20:10


Bookkeeping software for small and medium-size businesses

Changes for 2.05 - 2021-07-27

  • Support DBD::SQLite 1.68. This version of SQLite breaks existing code due to incompatible changes in unicode handling.
  • Prevent writing command history if the ReadLine does not support it.
2021.07.27 19:45


Asynchronous/Advanced Input/Output

Changes for 4.76

  • add autoconf test for siginfo_t, which is, of course, not available on windows (reported by Peter Petky).
  • disable syscalls on solaris, as perl seems to provide an incompatible syscall prototype that clashes with sys/syscall.h.
2021.07.27 18:47




























Active questions tagged perl - Stack Overflow

Adding MM::SS times, dividing them and printing the average

PERL do not run script after PAR

How could I write a loop that, if recognize a number, then adds 1, until it reach some specified length? [closed]

Perl Text::CSV_XS | getline() is combining lines

How do I split a string using a regular expression in Perl?

Perl: Length of an anonymous list

Perl regex substitutions with unicode character don't work, what am I missing?

What is the best native Perl MD5 module that is thread-safe? [closed]

Push operation not working while pushing array to a hash

Passing a hash to a subroutine without changing it input

Perl add content to JSON data after processing

when using Devel::Cover, difference between ./Build test and cover -t

How to turn a string into a modified hex representation?

How do I mock a realine of a GLOB ref when unit testing in perl?

Modifying pixels in an image using Perl

Perl DBD:ODBC throwing "does not yet support binding a named parameter more than once" when preparing sql-server insert statement

How to extract .gpx data with python

How to sort rows based on column values using awk

find correct version of Perl library function List::Util

Have a problem with perl or fedora bash. my source is not recognized unless pre fixed with perl

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

Ann Barcomb study: Survey launch

Published on behalf of TPF Board.

(Dr. Ann Barcomb)[] of the University of Calgary is conducting research to understand episodic, or occasional, participation in the Perl and Raku communities, in collaboration with The Perl Foundation. The results of the research will be provided as a TPF report and will assist the community in improving practices for managing episodic participation to provide insights into what free / libre / open source software projects could do to become more sustainable.

If you would like to take part in this study, click here to access the survey. Based…

2021.07.15 03:49

Grant Proposal: Maintaining Perl 5 Core (Dave Mitchell)


This application is to extend into the future the TPF grant funding I have been receiving over the last ten years or so to maintain the Perl core. I'm one of the main maintainers of the Perl core internals, and new funding will help me to continue working on the core.

Project Details

This project will cover improvements to the perl core such as: general maintenance, bug fixes, performance issues, new features, investigating smoke failures, helping getting Perl into a releasable state etc. These are all activities I already do.


There is no particular schedule. I am available to sta…

2021.07.13 22:32

Call for Grants: July 2021 Round

The Grants Committee is accepting grant proposals all the time. We evaluate them every two months and another round is starting.

If you have an idea for doing some work that will benefit the Perl or Raku communities, please consider submitting a grant application. The application deadline for this round is 23:59 July 27, 2021, UTC. We will publish the received applications, get community feedback through August 3rd, and we will conclude the process shortly thereafter.

We now accept grant requests for core Perl and Raku development. There are some eligibility requirements that must be met for eac…

2021.07.13 22:26

Maintaining Perl 5 (Dave Mitchell): May /June 2021 Report

This is a monthly report by Tony Cook on his Maintaining Perl 5 grant. We thank the TPF sponsors to make this possible.

``` Did very little work in May

  2:39 process p5p mailbox  
  2:39 TOTAL (HH::MM) 


``` In June I made a start on catching up on many months of unread p5p emails, github notifications etc.

SUMMARY: 10:46 process p5p mailbox ------ 10:46 TOTAL (HH::MM)

There are 28.7 hours left on the existing grant, (but I've applied for a new grant). ```

2021.07.13 03:23

Outreachy Internship - Rosheen working on Open Food Facts

I am pleased to announce we accepted an intern, Rosheen Naeem, to this year’s Outreachy internship at Open Food Facts. Rosheen will work with Stéphane Gigandet on a project to improve the quality (templatization, documentation, unit tests etc.) of the Open Food Facts backend (all written in Perl) to make it more friendly to new developers until August 2021.

Rosheen is a software engineer based in Pakistan. She has expertise in web development and technical writing. She brings with herself experience in web development, opensource, game development, and technical course designing.

Rosheen’s contr…

2021.07.05 12:47

Finding a shared vision of Perl

Published on behalf of author: Andrew Solomon

The Perl Foundation (TPF) is conducting research to identify the shared values of the Perl community, and their vision of the Perl ecosystem in years to come. The goal is to provide information on which TPF, community groups, and individuals can make informed decisions and plans for the future.

In this blog we’ll explain why this research is needed, what we have learned so far, how we’re collecting the data, and the next steps.

Why are we doing this research?

The Perl ecosystem is a complex, diverse group of people and communities with an equally diver…

2021.07.05 07:31

Random Thought: Exposure of Perl in the Academic Circles

Today I have wandered on the famous academic paper archive and suddenly a thought popped into my mind - use Perl as the keyword in searching.

Computer science papers with "Perl" in the title (8*)

Computer science papers with "Lisp" in the title (12**)

Computer science papers with "Ruby" in the title…

2021.07.22 14:10

Released Giblog 2.0, and a movie "How to create your web site using Giblog and Perl"

Released Giblog 2.0. GIblog is a tool to create your web site easily.

Giblog 2.0 Release Announcement

Giblog 2.0 is released at 2021-7-24. serve command and publish command is added.

Giblog 2.0 Release Announcement

Giblog Document

Giblog Document in CPAN.

Giblog Document

Giblog Movie

I explain how to create your website using Giblog and Perl by live coding. Giblog is a Perl module to create web sites. If you see this movie, you can create your web site using Giblog and Perl(although you need some Linux knowledge).

2021.07.22 03:45

Perl Weekly Challenge 122: Average of Stream and Basketball Points

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

Spoiler Alert: This weekly challenge deadline is due in a few days, on July 25, 2021 at 24:00. 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: Average of Stream

You are given a stream of numbers, @N.

Write a script to print the average of the stream at every point.


Input: @N = (10, 20, 30, 40, 50, 60, 70, 80, 90, ...)
Output:      10, 15, 20, 25, 30, 35, 40, 45, 50, ...

Average of first number is 10.
2021.07.21 02:19

Perl Weekly Challenge 121: Invert Bit

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

Spoiler Alert: This weekly challenge deadline is due on July 18, 2021 at 24:00. This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.

You are given integers 0 <= $m <= 255 and 1 <= $n <= 8.

Write a script to invert $n bit from the end of the binary representation of $m and print the decimal representation of the new binary number.


Input: $m = 12, $n = 3
Output: 8

Binary representation of $m = 00001100
Invert 3rd bit…
2021.07.18 03:05

On the eve of CPAN Testers

Have a look at the CPAN Testers reports for two TRIAL releases of the same module, one from 2 days ago, the other a little over 3 years ago:

Last time, reports started coming in within hours of the release; over 60% of the picture was there within a day; some 85% after 2 days…

2021.07.15 15:34

TWC 120: Task #1, Swap Odd/Even bits & Task #2, Clock Angle

TWC Task #1, Swap Odd/Even bits jaredor submission for Task #1

I was just going to use a variation on last week's "Nybble Swap" task for this, but then I foolishly thought, "No, I've read Hacker's Delight I should twiddle bits!"

Okay, now that I told you about my first mistake, let me tell you, the bit twiddling was fun once it started working but I do have a little regret that it's straightforward bit-twiddling: I created a bit mask to pick out alternating bits, then just did the shifting and OR-ing you would expect to switch the even/odd bits. I can't help but wonder if there isn't some clever…

2021.07.12 02:58

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

#522 - Promote Perl

Hi there

I am sure many of you are aware of Outreachy. It all started with GNOME's Women's Summer Outreach Program (WSOP) in 2006. The idea was to encourage women's participation in Open Source projects. In 2009, the GNOME community revived the program to encourage more women to contribute to GNOME and renamed it to GNOME Outreach Program for Women. It became a very popular program in no time and successfully brought in more women into the fold. The program was further expanded with more organisations joining in e.g. Fedora, Mozilla, JBoss, OpenStack, Subversion etc. With the additions, in 2013…

2021.07.26 10:00

#521 - Floods in Perl

Hi there,

This week we saw the tremendous and devastating power of nature in Europe as well. The Guardian even mentioned the Moselle River at Perl in Germany. The place where Liz and Wendy attempted to re-unite the Perl 5 and Perl 6 communities as well. That was not very successful.

I was wondering what can we do?

I know a few members of the Perl community who are also volunteer firefighters. Some of them might have taken part in the rescue efforts maybe even risking their own lives. That a very generous way of helping others and helping the world when disaster strikes.

I know a few other members…

2021.07.19 10:00

#520 - CPAN Bus Factor

Hi there

If, like me, you are a fan of MetaCPAN then you must have noticed the latest changes to the MetaCPAN site. It is the introduction of new metric, "CPAN Bus Factor". Don't know what I am talking about? Well then you should read the blog post, which is a collaborative work by Neil Bowers and Olaf Alders.

It reminds me an incident from the past when I received an email from Neil Bowers about one of my CPAN distribution, IP::Info as he was reviewing CPAN modules for locating an IP address. Later he published his report on 8th Aug 2012. You can take a look collection of CPAN module reviews by…

2021.07.12 10:00

#519 - Crystal conference and course

Hi there!

I am going to give a presentation at the Crystal 1.0 conference alongside Yukihiro 'Matz' Matsumoto and Bruce Perens (just to throw in two names you might be familiar with and to have some honor by association). It is taking place this Thursday. It is my first presentation at an international conference for a long time. Wish me luck!

If you cannot make it to the conference, but you are interested in learning Crystal, I am going to start an experimental programming Crystal course via Zoom. You can get more information and register here

As for Perl, it was a rather quiet week without a lo…

2021.07.05 10:00

#518 - Becoming book author?

Hi there

I recently came across a blog post by Dave Cross where he shared the story of how he got into publishing ebooks. I highly recommend you read his blog post, I find it inspirational, personally. I always wanted to write a technical book on a subject related to Perl. I have high regard for those who are professional authors e.g. Curtis Poe, brian d foy, Gabor Szabo, Dave Cross and many more. Ever since I started the weekly challenge, I became more involved in writing technical blogs. Soon I realised it is not the same as writing a technical book. But the urge inside me to become an author…

2021.06.28 10:00

#517 - Commitment and habit

Hi there!

Flavio Poletti has just completed one year of blogging. Mohammad S. Anwar has been editing the Perl Weekly for more than three years and running the Perl Weekly Challenge for more than two years.

I am not sure what the secret is, but something about creating a commitment, even if it is an artificial commitment that then you need to stick to. I am sure both of them had times when they thought of sleeping in and not doing the work that day or that week. After all, this is not their paid job, but the commitment kept them going. With time it became easier to do the task and the whole thing…

2021.06.21 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

The Funhouse Mirror of Perl Criticism

Last week’s article got a great response on Hacker News, and this particular comment caught my eye:

I think this is the real point about Perl code readability: it gives you enough flexibility to do things however you like, and as a result many programmers are faced with a mirror that reflects their own bad practices back at them.

orev, Hacker News

This is why Damian Conway’s Perl Best Practices (2005) is one of my favorite books and perlcritic, the code analyzer is one of my favorite tools. (Though the former could do with an update and the latter includes policies that contradict Conway.) Point…

2021.07.27 14:00

Weekly Challenge 123

Two nice and quick challenge this week. Tasks, My solutions

TASK #1 › Ugly Numbers Task

You are given an integer $n >= 1.

Write a script to find the $nth element of Ugly Numbers.

Ugly numbers are those number whose prime factors are 2, 3 or 5. For example, the first 10 Ugly Numbers are 1, 2, 3, 4, 5, 6, 8, 9, 10, 12.

My solution

This was relatively straight forward, although I'm not sure if my method is the most efficient (took 16 seconds to find the 1,000th ugly number).

I determine if a number is ugly by dividing it by 2, 3, 5 as many times as it leaves no remainder. If the resulting number is…

2021.07.27 12:23

Weekly Challenge 122

Challenge, My solutions

TASK #1 › Average of Stream Task

You are given a stream of numbers @N.

Write a script to print the average of the stream at every point.

My solution

This is relatively straight forward, and the work is done with this bit of code map { ++$cnt; $sum += $_; $sum / $cnt } @N. Basically, I add 1 to the counter and the value to the sum, and calculate the average (sum ÷ counter) at the point.

One thing that isn't explained is what happens when the average is not a whole number. Since there is no guidance on what to do, I will print out what Perl does. So one third shows as 0.33…

2021.07.24 06:16

The four noisy horsemen of Perl hate

I publish Perl stories on this blog once a week, and it seems every time there’s at least one response on social media that amounts to, “I hate Perl because of its weird syntax.” Or, “It looks like line noise.” (Perl seems to have outlasted that one—when’s the last time you used an acoustic modem?) Or the quote attributed to Keith Bostic: “The only language that looks the same before and after RSA encryption.”

So let’s address, confront, and demystify this hate. What are these objectionable syntactical, noisy, possibly encrypted bits? And why does Perl have them?

Regular expressions

Regular exp…

2021.07.20 14:00

Taming the Moose: Picking the best way to subclass Perl methods

The override keyword in Perl’s Moose object system is a nice bit of code-as-documentation since it explicitly states that a given method overrides from its superclass. It also has a super keyword that can be used inside an override, calling “the next most appropriate superclass method with the same arguments as the original method.”

The Moose documentation then goes on to say, “The same thing can be accomplished with a normal method call and the SUPER:: pseudo-package; it is really your choice.” So when should you use one and not the other? I decided to find out.

First I defined a simple Moose s…

2021.07.13 14:00

Release 1.55 of perl-workflow, a minor feature release

Thanks to my tireless collaborator Erik Huelsmann we have progressed and have made a release 1.55 of Workflow and it is available from CPAN and MetaCPAN now.

Erik is deeply involved in using Workflow for another project and as his implementation there progresses he discovers bugs, discrepancies and places where improvements can be made - so Workflow is improving based on the works in another project.

Of significant changes to this release, the following stand out:

  • It is now possible to configure custom workflow classes
  • The workflow implementation now adheres to it's own documentation, when it come…
2021.07.12 19:29


Average of Stream / Basketball Points

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

Part 1

You are given a stream of numbers, @N. Write a script to print the average of the stream at every point.


use strict;
use warnings;
sub moving_average{
    my $n = 0;
    my $sum = 0;
        $n += 1;
        $sum += shift;
        print $sum / $n;
        print ", " if @_;
        redo if @_;
    print "\n";

    my @N;
    for(my $i = 10; $i < 1_000_000; $i += 10){
        push @N, $i;
Sample Run

$ perl perl/
2021.07.25 18:53

A Genetic Algorithm solution to the Travelling Salesman Problem

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

Part 1

You are given integers 0 <= $m <= 255 and 1 <= $n <= 8. Write a script to invert $n bit from the end of the binary representation of $m and print the decimal representation of the new binary number.


use strict;
use warnings;
sub flip_bit_n{
    my($x, $n) = @_;
    my $bits = substr(unpack("B32", pack("N", $x)), 24, 8);
    my @bits = split(//, $bits);
    $bits[@bits - $n] ^= 1;
    my $flipped_decimal = unpack("N", pack("B32", substr("0" x 32 . join("", @bits), -32…
2021.07.18 23:36

Swapping Bits / Time Angle

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 less than or equal to 255. Write a script to swap the odd positioned bits with the even positioned bits and print the decimal equivalent of the new binary representation.


use strict;
use warnings;
sub swap_bits{
    my($n) = @_;
    my $bits = substr(unpack("B32", pack("N", shift)), 24, 8);
    my @bits = split(//, $bits);
    for(my $i = 0; $i < @bits; $i += 2){
        @bits[$i, $i + 1] = @bits[$i + 1, $i]; 
    my $swapped_deci…
2021.07.11 17:41

Packing and Unpacking from vacation: The Weekly Challenge 119

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 swap the two nibbles of the binary representation of the given number and print the decimal number of the new binary representation.


use strict;
use warnings;
sub swap_nibbles{
    my($n) = @_;
    my $bits = substr(unpack("B32", pack("N", shift)), 24, 8);
    my $swapped_bits = substr($bits, 4) . substr($bits, 0, 4);
    my $swapped_decimal = unpack("N", pack("B32", substr("0" x 32 . $swapped_bits, -32)));
    print $s…
2021.07.04 12:04

A List with One Missing Line and Too Many Lines to List: The Weekly Challenge 117

The examples used here are from the weekly challenge problem statement and demonstrate the working solution.

Part 1

You are given text file with rows numbered 1-15 in random order but there is a catch one row in missing in the file.


use strict;
use warnings;
sub find_missing{
    my(@numbers) = sort {$a <=> $b} @_;
    for(my $i=0; $i< @numbers - 1; $i++){
        return $numbers[$i] + 1 if $numbers[$i] != $numbers[$i + 1] - 1;   

    my @line_numbers; 
        push @line_numbers, $1;
    my $missing = find_missi…
2021.06.20 23:38

Evolving a Sequence with a Functional Genome: The Weekly Challenge 116

The examples used here are from the weekly challenge problem statement and demonstrate the working solution.

Part 1

You are given a number $N >= 10. Write a script to split the given number such that the difference between two consecutive numbers is always 1, and it shouldn't have a leading 0. Print the given number if it impossible to split the number.


use strict;
use warnings;
use boolean;
use AI::Genetic;

use constant THRESHOLD => 0;
use constant NUMBERS   => "1234";

sub no_op{
    my($x) = @_;
    return (caller(0))[3] if !defined($x);
    return $x;

sub get_1{
2021.06.13 21:17

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 – 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

List of new CPAN distributions – Apr 2021

dist author version abstract
Acme-Brainbuz-markdown BRAINBUZ 0.001 turns baubles into trinkets
Acme-CPANModules-BrowsingTableInteractively PERLANCAR 0.001 Creating a palette of visually distinct colors
Acme-CPANModules-CreatingPaletteOfVisuallyDistinctColors PERLANCAR 0.001 Creating a palette of visually distinct colors
Acme-Markdown-Embarrassing CONTRA 0.01 Testing the MetaCPAN Markdown converter
Alien-OpenMP ETJ 0.001 Encapsulate system info for OpenMP
App-Greple-ical UTASHIRO 0.01 Module to support Apple OS X Calendar data
App-MigrateToTest2V0 UTGWKK 0.01 Migrate your tests from Test::More to Test2::V0
App-ProxyThat SIMBAB…
2021.05.01 00:37

List of new CPAN distributions – Mar 2021

dist author version abstract
Acme-Automatix CONTRA 0.01 The great new Acme::Automatix!
Acme-CPANModules-Frameworks PERLANCAR 0.001 List of frameworks on CPAN
Acme-MetaSyntactic-legodcsupervillains BINGOS 0.02 LEGO DC Super Villains theme
Acme-MetaSyntactic-legotheincredibles BINGOS 0.02 LEGO The Incredibles theme
Alien-uPB-Core MBARBON 0.16 build and find uPB (a.k.a. Unleaded)
App-PerlNitpick GUGOD 0.01 change-suggester about insignificant details.
App-ThisDist-OnMetaCPAN PERLANCAR 0.001 this-dist-on-metacpan and some other CLIs
App-dateseq-id PERLANCAR 0.001 Generate a sequence of dates
App-knradio WOLDRICH 0.044 interface for knr…
2021.04.01 11:26

List of new CPAN distributions – Feb 2021

dist author version abstract
Acme-CPANModules-HaveWebsite PERLANCAR 0.001 Modules that have their own website
Acme-CPANModules-Sudoku PERLANCAR 0.001 Sudoku-related modules on CPAN
Algorithm-Backoff-RetryTimeouts GSG v1.0.0 A backoff-style retry algorithm with adjustable timeout support
Alien-LibJQ DONGXU 0.01 Build libjq library (
Antsy BDFOY 0.901 Streaming ANSI escape sequences
App-FilePacker SYMKAT 0.001 Embed a self-extracting tarball in a Perl module.
App-StatisticsUtils PERLANCAR 0.001 CLI utilities related to statistics
CGI-remote_addr GTERMARS 0.03 Enhanced version of's "…
2021.03.01 01:22

# where we turn Perl inside out

(cccli) 9 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::cpm - a fast CPAN module installer
    • Version: 0.997006 on 2021-07-22
    • Votes: 54
    • Previous version: 0.997004 was 1 month, 9 days before
  2. App::Netdisco - An open source web-based network management tool.
    • Version: 2.047008 on 2021-07-21
    • Votes: 13
    • Previous version: 2.047007 was 7 days before
  3. CryptX - Cryptographic toolkit
    • Version: 0.073 on 2021-07-18
    • Votes: 42
    • Previous version: 0.072 was 2 months, 19 days before
  4. DBD::SQLite - Self Contained SQLite RDBMS in a DBI Driver
    • Version: 1.6…
2021.07.24 20:46

(cdlxxvii) metacpan weekly report

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

This week there isn't any remarkable distribution

Build date: 2021/07/24 18:42:05 GMT

Clicked for first time:

2021.07.24 20:42

(d) stackoverflow perl report

(cccl) 9 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.047007 on 2021-07-14
    • Votes: 13
    • Previous version: 2.047005 was 4 months, 18 days before
  2. FFI::Platypus - Write Perl bindings to non-Perl libraries with FFI. No XS required.
    • Version: 1.53 on 2021-07-12
    • Votes: 54
    • Previous version: 1.52 was 11 days before
  3. Future::AsyncAwait - deferred subroutine syntax for futures
    • Version: 0.52 on 2021-07-13
    • Votes: 39
    • Previous version: 0.51 was 1 month, 13 days before
  4. Net…
2021.07.17 20:21

(cdlxxvi) metacpan weekly report - Object::Pad

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

Week's winner: Object::Pad (+3)

Build date: 2021/07/17 18:13:49 GMT

Clicked for first time:

2021.07.17 20:14

(cdxcix) 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

Let’s get SaaSsy! Remote Perl role within US time zone, remote within a USA/Canada/Mexico time zone (Perl Jobs by Perl Careers)

Forget the drudgery of a long commute and an office you don’t like — we’ve got the role that all you remote working warriors have been waiting for. Goodbye, over-capacity metro rides. You won’t be missed.

Our client is the world’s leading provider of award-winning intelligent SaaS solutions for clients ranging from first responders and engineers to manufacturers and educators. These SaaSsy folks offer compliance training, continuing education, safety management, training management, and workforce scheduling. Boasting over 22 million users worldwide, they are at the top of their industry and ha…

Change the world without leaving your desk! Remote (or on-site) Perl role - UK, Switzerland, USA, Canada or South Africa, Remote within select countries (Perl Jobs by Perl Careers)

Do-gooders, unite!

The butterfly effect says that a butterfly flaps its wings and weeks later, a tornado forms on the other side of the globe. Everything we do has an impact, so why not work for a company that is actively making the world a better place?

As a thriving multinational fundraising group with operations in the UK, Switzerland, USA, Canada, and South Africa, our client works with thousands of charities to provide cloud-based management tools to connect with their supporters. With a secure channel to receive funds and a dedicated social fundraising platform, this company helps charit…

Software Developer-Infrastructure, 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…

Summer is calling… Perl role in Malta, Malta (Perl Jobs by Perl Careers)

Waves, parties, and your new job!

Perl programmers, your skills are in demand. Sure, you could keep slogging away in your current role, but maybe it’s time to try something — or somewhere — new. Consider Malta: azure waters, 300 days of sunshine per year, and a population widely known as some of the friendliest people in the world. Doesn’t that sound like the place you want to be?

Our client is an international financial company with offices around the world. With a global presence and the kind of growth that would make a beanstalk blush, they’re looking to expand their team. If you’re a Perl…

Scrooge had it right! Perl role in Vienna, Vienna, Austria (Perl Jobs by Perl Careers)

Holding onto your cash makes good cents…

Scrooge gets a bad rap. Okay, so he’s a little grouchy and wouldn’t recognize Christmas spirit if it stole his nightcap, but his fixation with frugality shouldn’t be shamed. If you believe in helping others hold on to their hard-earned cash, we have the role for you.

Our client is one of the largest product and price comparison platforms in German-speaking countries. They’re not saying you shouldn’t spend money, but if you’re going to splash out on the latest gear, why not get the best price? With a website that allows consumers to compare deals on ever…

Forget the carrot and stick! Perl role in London, City of London, United Kingdom (Perl Jobs by Perl Careers)

Some people work for a paycheque, but not you. For you, it’s more than that. You take pride in your work. You go the extra mile not because there’s a carrot or a stick, but because that’s who you are. And if that’s who you are, lean in, because our client wants to talk to you.

A titan of premium native advertising, our client dominates the field in sectors like tech, business, financial services, and lifestyle technology. They have over 150 partner websites ranging from Reuters, Guardian, MSN, and Telegraph, and with a dazzling array of tools in their arsenal, they use promotional panels, emai…

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

BookTrolls is looking to hire top-notch Perl 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 in Perl. 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, y…

Perl Superheroes Wanted! Remote Perl within US time zone, remote within a USA/Canada/Mexico time zone (Perl Jobs by Perl Careers)

Ready to leap tall buildings in a single bound?

Does your boss treat you like a Perl superhero? If the answer is no, we’ve got a role open that’ll inspire you to leap a tall building with excitement. Best of all, this position is 100% remote, so feel free to work in a cape and leotard (or a t-shirt and shorts, if that’s more your thing).

As the leading provider of award-winning intelligent SaaS solutions for clients that include first responders, engineers, manufacturers, and educators, this organization’s comprehensive offerings include training management, continuing education, compliance tr…