Recent CPAN uploads - MetaCPAN


Trims the spaces off the leading / trailing string.
2021.06.13 17:12


Changes for 0.057 - 2021-06-14T01:27+09:00

    2021.06.13 16:39


    It's Perl support for AWS Lambda Custom Runtime.

    Changes for 0.0.28 - 2021-06-13T15:46:13Z

    • Fix mojibake when the input and the output are utf8 encoded
    • Update WwwCounter v4.0.0 in the examples
    2021.06.13 15:47


    Make implicit imports explicit

    Changes for 0.000010 - 2021-06-12T03:25:27Z

    • Detect fully qualified symbol name interpolated in quotes
    • Ignore HTTP::Message::PSGI
    • Include docs for regex patterns which should have been included in 0.000009
    2021.06.13 15:35


    Changes for 0.110 - 2021-06-13T23:44+09:00

      2021.06.13 14:53


      BeLike::RJBS when you build your dists

      Changes for 5.017 - 2021-06-13T08:42:19-04:00

      • catch late-stage mistakes: old email address, toolchain support using v5.12-ism
      2021.06.13 12:43


      distribution builder; installer not included!

      Changes for 6.019 - 2021-06-13T08:39:14-04:00

      • When using "use_package" in PkgVersion, do not eradicate the entire block of "package NAME BLOCK" syntax! Wow, what a bug...
      2021.06.13 12:40


      Automate the Firefox browser with the Marionette protocol
      2021.06.13 10:19


      List of instructions and registers of x86-compatible processors, validating and converting instructions and memory references.
      2021.06.13 09:43


      Changes for 0.050 - 2021-06-13T17:43+09:00

        2021.06.13 09:16




























        Active questions tagged perl - Stack Overflow

        git-svn Can't locate SVN/ after fresh installation of macOS Catalina 10.15.4

        how to replace a block of text with new block of text?

        grep + how to match word from file when word in grep is variable [duplicate]

        print set of lines if it matches a pattern in perl [closed]

        Perl shell curl execution handle json string

        When I try the print and say command on the same .pl file on separate lines it will not run and give : the error Uncaught exception from user code [closed]

        Is there a way to force the early rendering of the image in PDF::API2?

        How to take list as an input in command line option format in Perl

        Perl Connection String for MS Access Professional Plus 2019

        I can't win the banner with Socket in Perl

        Can't locate in @INC Perl perl file loaded by "require"

        Perl not selecting defined value with "||" in subroutines or hashes

        Javascript regex compared to Perl regex

        Difference between grep and perl regex?

        perl command inside bash script not working ( duplicated ) [duplicate]

        perl command inside bash script not working [closed]

        Undefined subroutine &main::GetCurrentTime in perl script execution [closed]

        Disable DBI HandleError in certain sections

        Is it possible to process and move lines of text matching a pattern to another location matching another pattern (in the same file)? [closed]

        perl Net::SIP transfer call

        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

        RakuAST Grant Report for May 2021

        Regarding his RakuAST Grant, Jonathan Worthington reports some awesome progress for May 2021.

        Side note: due to a bug in the Markdown rendering in this blog post, the less-than and greater-than characters in code blocks are double-encoded. Please refer to this gist for a correctly rendered version.

        Anyway, here is Jonathan's report:

        During May I focused on filling out the regex part of RakuAST, with the result that the majority of the constructs found in Raku regexes now have AST nodes and can be compiled by the RakuAST-based compiler frontend. Of note, I did AST nodes for:

        • Declarations in regexes…
        2021.06.02 09:13

        Grant Proposal Recap: May 2021

        The Grants Committee has received the following grant proposals for the May 2021 round: * Raku Dispatch and Compiler Improvements * Persistent Data Structures for Raku

        Before the Committee members vote on any proposal, we like to solicit feedback from the Perl and Raku communities.

        Review the proposals at their individual links and please comment there by June 6, 2021. The Committee members will start the voting process following that and the conclusion will be announced shortly after.

        2021.06.01 21:02

        Grant Proposal: Persistent Data Structures for Raku


        Daniel Sockwell


        Immutable, persistent data structures give a program certain superpowers that it's very hard to have in any other way: they allow the program to "time travel" (view previous application state); they allow let the program share data across threads or asynchronously save it to disk without needing locks; they enable a much more purely functional style of programming – which results in code that many software developers find much easier to reason about. Because of these benefits, many languages with strong support for functional programming (Clojure, Elm, Haskell, etc…

        2021.05.30 20:58

        TPRCIC Newsletter 26 May 2021

        Welcome to the latest ‘The Perl and Raku Conference in the Cloud’ newsletter.

        This issue: * The schedule is available * Submit a Lightning Talk * Volunteers needed ( virtual moderators, hosts ) * Do you want to host a virtual BoF? * Order your conference shirt * About the Conference in the Cloud * Get your tickets * How to Reach Us

        See you real soon

        The conference is in just 2 weeks! We're really looking forward to seeing everyone again. We’ve got a lot of great talks lined up! The schedule is available on our website.

        Give a Lightning Talk

        Lightning Talks are short, 5 minute, talks that may be ser…

        2021.05.25 12:31

        Maintaining Perl 5 (Tony Cook): April 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.

        Approximately 39 tickets were reviewed.
        [Hours]         [Activity]
          2.66          #16249 read code, try to work up some implementation
                        #16249 more implementation
          0.80          review list discussion, comment on #17999 re walking
                        backwards through UTF-8
          0.73          #18588 debugging
          1.43          #18670 review CI results, reproduce on Win32, testing, add
                        debug code
                        #18670 find issue, fix, testing, push to…
        2021.05.24 13:32

        Grant Proposal: Raku Dispatch and Compiler Improvements


        Jonathan Worthington


        I currently have two ongoing grants:

        • A Raku performance and reliability grant, under which almost all the time is currently dedicated to implementing a new generalized dispatch mechanism. Progress so far indicate it will offer both performance improvements and simplify future development.
        • A RakuAST grant, which involves implementing a user-facing document object model for the Raku programming language. This will provide a foundation for macros and a number of other meta-programming features. A new compiler frontend is being developed in parallel with the new AST.


        2021.05.23 20:32

        Perl Weekly Challenge 116: Number Sequence and Sum of Squares

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

        Spoiler Alert: This weekly challenge deadline is due in a couple of days (June 13, 2021). 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: Number Sequence
        • 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 leading 0.*

        Print the given number if it impossible to split the number.


        Input: $N = 123…
        2021.06.13 03:09

        Dancer2 0.301004 Released

        On behalf of the Dancer Core Team, I'd like to announce the availability of Dancer2 0.301004. This is a maintenance release with two bug fixes only: one corrects an omission from the tutorial, and the other adds a missing dependency to Dancer2's cpanfile.

        You can read the complete [changelog](
        here. If you need help, please reach out on IRC ( or our
        [mailing list](

        Happy Dancing!

        2021.06.06 22:32

        Perl Weekly Challenge 115: String Chain and Largest Multiple

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

        Spoiler Alert: This weekly challenge deadline is due in a couple of days (June 6, 2021). 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: String Chain

        You are given an array of strings.

        Write a script to find out if the given strings can be chained to form a circle. Print 1 if found otherwise 0.

        A string $S can be put before another string $T in circle if the last character of $S is same as first character of $T…
        2021.06.05 03:24

        Let's be friend ...

        Let me share my views in response to the questions raised.

        2021.06.05 03:23

        Dancer2 0.301003 Released

        On behalf of the Dancer Core Team, I'd like to announce the availability of Dancer2 0.301003. While there are a number of bug fixes and documentation improvements in this release, there are two new features that I'd like to point out:

        • Git support from the CLI: When scaffolding a new Dancer2 app from the command line, you can now initialize a new Git repository and set the remote all at once. Passing the --git option to dancer2 gen will initialize a new repository, and --remote will take a URL for your remote repository (git:// and https:// are both supported).

        • Out-of-the-box Docker support: Ther…

        2021.06.03 18:30

        Monthly Report - May

        Time to celebrate ...

        As you all know, I joined Oleeo last month, it was busy getting my head around the code base and infrastructure. I had to slow down my activities with regard to the routine Perl Weekly Challenge tasks.

        I would like to talk about two happy interactions last month. Ever since I started the Perl Weekly Challenge project, I hardly find time to contribute to CPAN whether it is my personal distributions or others. The only time I contribute to others work is when I get my monthly assignment from Pull Request Club. Lets get back to the subject, last month, I received RT #136670 fr…

        2021.06.03 05:29

        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

        Let’s do an experiment! Perl role in Canberra, Australia

        Applying this clever approach to the use of their innovative genotyping software, this thoughtful company helps to develop new species of plants. They deliver cost-efficient genotyping technology that promotes the development of better, stronger crops adapted to suit their environment. You’ll be familiar with modern tooling and might have experience with Ansible, AWS, and Linux containers.
        2021.06.07 10:00

        Not All Heroes Wear Capes. Perl in Vienna

        Our client takes the legwork out of the hunt for the best bargain, offering one of the largest product and price comparison platforms in German-speaking countries. They’re looking for a heroic Perl programmer to develop and deliver quality content and all the info users need to find their gadgets for the right price.
        2021.06.07 10:00

        Cooking Up Something Good. Perl role in London

        With a knack for tailoring content to a variety of site aesthetics, our client sets a banquet of advertising delights for over 349 million consumers around the world. If your mouth is watering at the thought of joining this dynamic team and you’re a senior Perl programmer with a solid understanding of Go programming languages, they just might set a place for you at the table.
        2021.06.07 10:00

        Doers Wanted. Perl Developer role in Pittsburgh, PA

        If you’re a Perl software engineer who enjoys distilling broadly defined objectives into actionable tasks, this might just be your next career move. This client is looking for someone who will design and build the tools their customers need. You’ll coordinate implementation, testing, deployment, and maintenance across multiple systems.
        2021.06.07 10:00

        A Gem of a Perl role. Remote within UK & EU

        This role is 100% remote and it’s open to residents of the United Kingdom, Switzerland, and the European Economic Area. If your communication skills in English are out of this world, you’re in! Also, who even wants to get dressed for the office anymore, right? You’ll need experience writing great Perl, along with valid HTML, Javascript, and CSS.
        2021.06.07 10:00

        Toronto Perl Mongers Online Meeting

        Thursday, July 22, 2021
        2021.06.07 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

        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

        User Story Mapping Teil 1

        In der agilen Software-Entwicklung wird oft die formale Korrektheit von User Storys über ihren eigentlichen Zweck gestellt: Die Beteiligten erzählen einander Geschichten aus Anwendersicht. Während der Umsetzung der Software verlieren Beteiligte zudem oft den Blick »auf’s große Ganze«. Die Methode »User Story Mapping« möchte helfen, diese Probleme zu beheben und durch die enstehende Software das Leben der Anwender verbessern.
        2021.01.28 10:00

        Geodaten in Bildern und Videos können viel über Nutzer verraten

        Am vorvergangenen Wochenende (9./10. Januar 2021) gab es relativ viel Wirbel um die Plattform Parler, die offensichtlich als Twitterersatz für hauptsächlich amerikanische "Konservative" diente. Amazon Web Services (AWS) kündigte Parler alle Services, da dort jede Menge Hass verbreitet wurde. Bevor alles abgeschaltet war, wurden wohl alle öffentlich verfügbaren Daten über ein API heruntergeladen. Ein paar der Fehler, die bei dem API gemacht wurden, werde ich kurz in der Schulung im März erläutern.
        2021.01.19 10:00

        DEV Community

        My TPRCiC 2021 review

        Last year I wrote a (poignant?) review of TPRCiC as one of my first blog posts.

        Once again this year, I attended The Perl and Raku Conference in the Cloud (and I even talked 😱 🙊), so here we go again for the review!

        Fresh starters Elasticsearch Data Exploration in Your Terminal

        Brad Lhotsky came with a very solid talk... 👍

        With a live demo (he's mad). That worked! (he's lucky good 😁)

        And the overall was very nice to listen (he's maybe experimented at this exercise - EDIT: yes he is).


        I enjoyed the topic (ElasticSearch), the comparisons and expertise about this technology and other related ones.


        2021.06.10 22:02

        Visualization of perl development history

        About 10 years ago I tried gource and made a visualization of the commit history of perl5.git. It was when grouce was new, shiny and cool:

        10 years passed like a blink and it has been a remarkable decade for perl5.git. As we see the growth of commit volume, there is also stable pace of releasees thanks to the standardization of release procedure. With relocation of communication platform, participation and small fixes seems to be much easier. While it has not be a perfectly stable decade, it is a good one.

        So as a 10-yearly review, here's the updated version of that gource visualization on perl5…

        2021.06.10 06:32

        I’ll attend the Perl and Raku Conference In the Cloud

        This year, I am unemployed so let’s try to attend and follow the Perl and Raku Conference In the Cloud. Feeling quite bored since those days, I am not too much into computer stuff but more like gardening, fixing my house, take care of my cat, cooking and do wood work, but let’s try.

        I bought a ticket.

        2021.06.09 13:53

        Moving Perl Mojolicious routes to their own module

        A mentee asked me over the weekend if there was a way within a Mojolicious web application to store the routes separately from the main application class. Here’s one way. These instructions assume you’re using Perl 5.34 and Mojolicious 9.19 (the latest as of this writing) via the terminal command line on a Linux, Unix, or macOS system; make the appropriate changes if this doesn’t apply to you.

        First, if you haven’t already, create your Mojolicious app at your shell prompt:

        $ mojo generate app Local::RouteDemo
          [mkdir] /Users/mgardner/Projects/blog/local_route_demo/script
          [write] /Users/mgardn…
        2021.06.08 14:00

        Weekly Challenge 116

        Challenge, My solutions


        The Perl Conference is this week, and there are many speakers I'm looking forward too. I do have a ticket to support the effort, but won't watch too many live. The event is 1am - 8am AEST, which kinda sucks for me.

        On to this week's task.

        What is a number?

        Ask I stranger on a street (in a Covid safe way of course!) to pick a number between one and 6, and they are likely to say one of six answers (one, two, three, four, five or six). Never 3.4, or 2.6. This was featured in an episode of Numb3rs. We are programmers, and think differently. So whenever a task mentions…

        2021.06.07 11:54

        The Perl and Raku Conference 2021


        It's once again this time of the year! 😄

        The Perl and Raku Conference (in the Cloud) is back!

        It's happening tomorrow and you will be able to follow the talks on YouTube but if you really want to join the fest, you have to pay a small fee of 10$ to receive the precious password to join the conference (I recommend to to this).

        You will then be able to join thanks to zoom

        • Main page: start page that contains all the links
        • Schedule: to see all talks and their descriptions
        • Wiki: where you can find infos about BOFs and more
        Last year

        Last year I enjoyed a lot the conference and wrote this…

        2021.06.07 06:55


        The Weekly Challenge 115

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

        Part 1

        You are given an array of strings. Write a script to find out if the given strings can be chained to form a circle. Print 1 if found otherwise 0. A string $S can be put before another string $T in circle if the last character of $S is same as first character of $T.

        use strict;
        use warnings;
        use Graph;
        use Graph::Easy::Parser;
        sub build_graph{
            my @words;
            my %first_letter_name;
            my $graph = new Graph();
            while(my $s = ){
                my $first_let…
        2021.06.05 23:34

        The Weekly Challenge 114

        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 find out the next Palindrome Number higher than the given integer $N.

        use strict;
        use warnings;
        sub next_palindrome{
            my($n) = @_;
                return $n if $n eq join("", reverse(split(//, $n)));
            $N = 1234;
            print next_palindrome($N) . "\n";
            $N = 999;
            print next_palindrome($N) . "\n";
        Sample Run
        $ perl perl/

        This is proba…

        2021.05.30 16:01

        The Weekly Challenge 113

        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 and a digit $D. Write a script to check if $N can be represented as a sum of positive integers having $D at least once. If check passes print 1 otherwise 0.

        use strict;
        use warnings;
        sub is_represented{
            my($n, $d) = @_;
            my @contains = grep { grep { $_ == $d } split(//) } (1 .. $n);
            return $n == unpack("%32C*", pack("C*",  @contains));
            print is_represented(25, 7) + 0 . "\n";
            print is_represented(24, 7) + 0…
        2021.05.23 15:33

        The Weekly Challenge 112

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

        Part 1

        Write a script to convert the given absolute path to the simplified canonical path.

        use strict;
        use warnings;
        # Write a script to convert the given absolute path to the simplified canonical path.
        # The canonical path format:
        #     - The path starts with a single slash '/'.
        #     - Any two directories are separated by a single slash '/'.
        #     - The path does not end with a trailing '/'.
        #     - The path only contains the directories on the path from the root directory to…
        2021.05.16 18:10

        Efficient Matrix Search: The Weekly Challenge 111

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

        Part 1

        You are given 5x5 matrix filled with integers such that each row is sorted from left to right and the first integer of each row is greater than the last integer of the previous row. Write a script to find a given integer in the matrix using an efficient search algorithm.

        use strict;
        use warnings;
        use boolean;      
        use constant MATRIX_SIZE => 5;   
        sub matrix_search{
            my($matrix, $search) = @_;
            unless(@{$matrix} == 1){  
                my $half = int(@{$matrix} / 2…
        2021.05.09 23:58

        Checking Phone Numbers and Transposing Tabular Data the Hard Way: The Weekly Challenge 110

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

        Part 1

        You are given a text file. Write a script to display all valid phone numbers in the given text file.

        use Capture::Tiny q/capture_stdout/;
        use PhoneNumberParser;
            my $parser = new PhoneNumberParser();
            while(my $line = ){
                $line =~ s/^\s+|\s+$//g;
                my $syntax_error = capture_stdout {
                print("$line\n") if !$syntax_error;
        0044 1148820341
         +44 1148820341
        2021.05.02 19:03

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

        On CPAN

        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

        List of new CPAN distributions – Jan 2021

        dist author version abstract
        Acme-CPANModules-ContainingJustData PERLANCAR 0.002 Modules that just contain data
        Acme-CPANModules-PERLANCAR-Forked PERLANCAR 0.002 List of my modules which are forked from others
        Acme-CPANModules-UUID PERLANCAR 0.001 Modules that can generate immutable universally unique identifier (UUIDs)
        Acme-ConspiracyTheory-Random TOBYINK 0.001 random theories
        Acme-STEVEB STEVEB 0.43 One line description
        AnyEvent-Discord NMELNICK 0.1 Provides an AnyEvent interface to the Discord bot API
        Apache2-SSI JDEGUEST v0.1.0 Apache2 Server Side Include
        App-Device-Chip-sensor PEVANS 0.01 Base class to build Device::Chip…
        2021.02.01 00:53

        # where we turn Perl inside out

        (cccxlv) 8 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::lcpan - Manage your local CPAN mirror
          • Version: 1.068 on 2021-06-05
          • Votes: 14
          • Previous version: 1.067 was before
        2. Dancer2 - Lightweight yet powerful web application framework
          • Version: 0.301004 on 2021-06-06
          • Votes: 125
          • Previous version: 0.301003 was 3 days before
        3. Minion - Job queue
          • Version: 10.22 on 2021-06-10
          • Votes: 84
          • Previous version: 10.21 was 2 months, 21 days before
        4. Minion::Backend::mysql - MySQL backend
          • Version: 0.29 on 2021-06-07
          • Votes: 12
          • Previous version: 0.28 was 3 d…
        2021.06.12 16:40

        (cdlxxi) metacpan weekly report - Perl::LanguageServer

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

        Week's winners (+3): Perl::LanguageServer 

        Build date: 2021/06/12 14:33:40 GMT

        Clicked for first time:

        2021.06.12 16:35

        (cdxciv) stackoverflow perl report

        (cccxliv) 12 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::lcpan - Manage your local CPAN mirror
          • Version: 1.066 on 2021-05-31
          • Votes: 14
          • Previous version: 1.034 was 1 year, 11 months, 10 days before
        2. CGI - Handle Common Gateway Interface requests and responses
          • Version: 4.53 on 2021-06-03
          • Votes: 40
          • Previous version: 4.52 was 30 days before
        3. Dancer2 - Lightweight yet powerful web application framework
          • Version: 0.301003 on 2021-06-03
          • Votes: 125
          • Previous version: 0.301002 was 1 month, 15 days before
        4. Future::AsyncAwait - deferred subrout…
        2021.06.05 16:39

        (cdlxx) metacpan weekly report

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

        This week there isn't any remarkable distribution

        Build date: 2021/06/05 14:35:54 GMT

        Clicked for first time:

        2021.06.05 16:36

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

        Looking Boss! 100% remote Perl role within UK & EU, London, UK (Perl Jobs by Perl Careers)

        Are you your own best boss?

        Being your own boss is great. The autonomy and the freedom to make the decisions that need to be made would be fantastic if it weren’t for the long hours, sleepless nights, and the possibility of your business swirling down the tubes. If only there were an established employer who gave you the space to feel like your own boss…

        Can you guess where we’re going with this? If you answered, “Straight to the door of one of the top online tech publications,” you’re right!

        Our client is looking for a full-stack Perl developer who takes autonomy to a new level. You’ll work l…

        Software Engineer, Professional Services, Massachusetts (Best Practical Solutions, LLC)

        We're looking for a software engineer to join our professional services team, helping RT users extend and enhance RT to meet their business needs.

        RT has extensive interfaces to allow users to customize and add functionality, starting with configuration options and extending to writing custom code to add completely new features. Our professional services engineers work with RT customers to create new automation via scrips, configure custom workflows, and write new custom code in extensions to extend RT to meet their business needs. Often these extensions become part of RT in future releases.


        Perl developer (REMOTE - U.S.), Portland, Oregon (Tech Talent Link)

        Position: Perl Developer
        Location: 100% REMOTE
        Pre-employment: Drug & background check
        Salary: $90-$100k

        Our financial services client will be hiring a full time 100% REMOTE Perl developer.

        *US candidates only*

        Job Purpose:
        Accomplishes software requirements, by developing, testing, deploying and maintaining applications, processes, and databases. 50% new development/50% support.

        Job Duties:
        •Design, develop, and maintain applications using Perl modules /code that meets requirements, is high quality, and performs efficiently and effectively.
        •Develops and maintains applications and d…

        Perl Developer - Join A Small Team Building Big Things, Austin, Texas (ClickMagick)

        Here at ClickMagick we're a small team building big things, and we're looking for another amazing Full Stack Perl Developer to join our team.

        Our SaaS application is used by thousands of businesses to track, test and optimize their online marketing. And as part of the core development team you'll help us to build great new features, you'll help refactor old legacy code, and everything else in between.

        Everything you do will be super important, you'll directly help improve the lives and businesses of our customers, and you'll have the opportunity to participate in the growth of the business as…

        Perl web developer, United States

        Looking to add an additional US-based remote Perl web developer to my team that services a large ecommerce company. Long term contract position.

        The role will generally deal with building out Perl integrations with third party vendors, including email vendors, Facebook, payment providers, etc.

        Senior Perl/Web Developer, Layton, UT, United States (Peak Payment Solutions)

        Peak Payment Solutions in Layton, UT is hiring a full-time senior level Perl/web developer with 3+ years professional experience. Pay is competitive and depends on experience and proven ability. This may be a work-from-home position.

        Work performed includes both new product development and existing product maintenance. Long-term employment desired.

        No 3rd parties or staffing agencies. No entry-level applicants. To apply, email your resume to


        * Perform maintenance on existing products
        * Add features to existing products to meet client needs
        * Provide in…

        A Gem of a Perl role. Remote within UK & EU, Remote within the UK or EU (Perl Jobs by Perl Careers)

        Forget the carrot or the stick — you’re the sort of full-stack Perl developer who does a spectacular job because you want to, not because someone offers you a treat or a correction. The opportunity to wear multiple hats gets your blood pumping, and if you have a passion for online tech publications, this is the role for you.

        With over 40 million readers around the globe, our client goes deep on cloud services, artificial intelligence, software, hardware, electronics, culture, and space. You’ve heard that big news is coming down the pipeline about UFOs: who do you think will know what’s out the…

        Perl Developer, Dublin, CA; Austin, TX; Minneapolis, MN; Bensalem, PA (Epicor Software Corporation)

        Principal Perl Developer

        About Us:

        Epicor Software is a global technology leader dedicated to helping businesses drive growth for more than 45 years. Our modern, industry-specific software helps customers boost efficiency and productivity by simplifying and automating everyday processes. We have a stellar team of nearly 4,000 worldwide employees who are passionate about building exceptional products and solutions through teamwork, constant innovation, and integrity. We strive to hire and reward star players who inspire one another and drive results for the business and our customers.

        About the…