Array-Pick-Scan-0.005
Pick random items from an array (or iterator), without duplicates
Changes for 0.005 - 2022-05-21
- Deprecation
- Enhancements
Pick random items from an array (or iterator), without duplicates
Changes for 0.005 - 2022-05-21
alternative handles_via implementation
Changes for 0.028 - 2022-07-02
SPVM Language
Changes for 0.9616 - 2022-07-01
role callbacks
Changes for 0.006 - 2022-07-01
Moose-like OO, fast to load, with zero dependencies
Changes for 0.002002 - 2022-07-01
Generate walking basslines
Changes for 0.0400 - 2022-07-01T12:08:47Z
Module to handle PTD files in Dumper Format
Changes for 1.17 - 2022-07-01
Moose-like OO, fast to load, with zero dependencies
Changes for 0.002001 - 2022-07-01
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 libraryPerl 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.
This problem wants to append columns to rows that have too few, like the b
, c
and d
rows:
a,10,12,13
b,20,22
c,30
d,33
This app…
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…
[This article is part of our Popular articles project to update Perl.com 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…
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.
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…
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…
For a week we lost control of the Perl.com 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 Perl.com 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 Perl.com domain. This means that I’m…
Could you or someone you know be willing to invest a few days per month, offering skills and experience that would be useful to The Perl Foundation or Raku Foundation? Have you considered nominating yourself, or them, to join the Board?
Potential Board members ideally will: * want to get things done and add value * be active in the open source community * demonstrate professional and positive characteristics
It would be great if you have experience on other FOSS boards, or not for profit, start-up, or management experience. Experience with fundraising would also be useful.
Nominees don't have to…
We are in need of a volunteer to take over the Grants Committee Chair responsibilities ASAP. What does the Grants Committee Chair do?
Grants Committee Chair Job DutiesBillions of people around the world rely on Perl and Raku in some way without even realising it. A [new prospectus](ra-rel-mnt/simplecas/fetch_content/64c0601be328555858adc21a58e221c977fe55ae/Perl Raku Prospectus_Final_Interactive_v2.pdf) from The Perl Foundation highlights how you can contribute to its ongoing development, either financially, or through volunteering time.
By doing so you can: * Ensure Perl and Raku are sustainably maintained and developed * Gain valuable education opportunities for your teams at conferences * Engage in important networking opportunities and build your corporat…
Work has started, though a roadblock has come up:
https://www.nntp.perl.org/group/perl.perl5.porters/2022/06/msg263847.html
Paul has a few ideas to work around it.
As some preliminary work, he wants to clean up op.c a bit and split the peephole optimiser out into its own file, per this thread:
https://www.nntp.perl.org/group/perl.perl5.porters/2021/12/msg262118.html
There is now an MR for that here:
https://github.com/Perl/perl5/pull/19835
Cheers,
-- Matthew Horsfall (alh)
Summer is here and brings with it a new in person Perl & Raku Conference in Houston from Tuesday June 21st to Friday June 25th.
Talks start on Wednesday 22 morning at 9:30 am. Come earlier to share a breakfast together and meet people from the community.
During the conference you can attend presentations covering Perl, Raku and supporting languages. You can also join us to one of the Hackathon sessions or subscrib…
The Grants Committee has concluded voting on the May 2022 round. One grant request was submitted:
Grant Proposal: Maintaining Perl (Tony Cook) (USD 20,000)VOTING RESULTS: Approved. 7 YES votes (35 points), 0 NO votes, 0 ABSTAIN
We accept proposals throughout the year; our next round of review will begin in July. You can submit proposals at any time.
If you want to help with funding and increase our budget, please visit our donations page. We sincerely appreciate all the donors which make the grant program possible. If you donate, please take advantage of your employers' matching donation program…
Following the release of 5.36.0, we have a new Perl Steering Council (PSC). The PSC for the next year comprises Ricardo Signes (RJBS), Paul Evans (PEVANS), and Philippe Bruhat (BOOK). These three will serve until 5.38.0 is released, at which point the next PSC will be elected.
As described in a previous blog post, in 2020 we established a new governance structure for the Perl programming language. In brief, the perl5-porters (P5P) mailing list continues to be the place where the future of Perl is discussed. Anyone on the list can follow the RFC process to propose new language features. The PSC…
There is nothing like looking, if you want to find something. -- The Hobbit, iv, "Over Hill and Under Hill"
Recently on the p5p mailing list the topic of removing smart match re-surfaced. There was a fairly vigorous discussion about the effect this would have on CPAN. So I thought I would look into how many uses there actually were.
Fortunately there are Perl Critic policies for this: Jan Holčapek's Perl::Critic::Policy::ControlStructures::ProhibitSwitchStatements and Perl::Critic::Policy::Operators::ProhibitSmartmatch. All I had to do was run them against my mini-CPAN.
My results:
These are some answers to the Week 171 of the Perl Weekly Challenge organized by Mohammad S. Anwar.
Spoiler Alert: This weekly challenge deadline is due in a few of days from now (on July 3, 2022 at 23:59). This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.
Task 1: Abundant NumbersWrite a script to generate first 20 Abundant Odd Numbers.
According to wikipedia,
A number n for which the sum of divisors σ(n) > 2n, or, equivalently, the sum of proper divisors (or aliquot sum) s(n) > n.
For example, 945 is the first Abundant…
In the wake of my postings on the file access tests (-r
and friends) I wondered if there was a Perl::Critic
policy to find them. So I constructed an annotated index of Perl Critic policies. Because of its size I stuck it on GitHub rather than in-line to this blog post.
This index assumes that any CPAN module whose name begins with Perl::Critic::Policy::
is a Perl Critic Policy. The index entry for each module contains the name of the module itself (linked to Meta::CPAN), the name of the distribution which contains it, and the abstract for the module if it contains anything other than a repeat o…
These are some answers to the Week 170 of the Perl Weekly Challenge organized by Mohammad S. Anwar.
Spoiler Alert: This weekly challenge deadline is due in a few of days from now (on June 26, 2022 at 23:59). This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.
Task 1: Primorial NumbersWrite a script to generate first 10 Primorial Numbers.
Primorial numbers are those formed by multiplying successive prime numbers.
For example,
P(0) = 1 (1)
P(1) = 2 (1x2)
P(2) = 6 (1x2×3)
P(3) = 30 (1x2×3×5)
P(4) = 210 (1x2×3×5×7…
I am trying to contact Francis van Dun (FVANDUN on cpan) for permission to relicense Net::DHCP to the MIT license.
The email listed on cpan bounces. If you are out there Francis please give me your blessing via the above link.
[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…
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 rt.cpan.org. 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…
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…
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 blogs.perl.org.
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…
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…
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…
Hi there
I noticed a fresh air and renewed energy among Perl Hackers ever since the latest release of Perl v5.36. I can only imagine what would be the reaction when Corinna becomes part of core Perl. It would definitely help Perl regain its glory, in my humble opinion.
As some of you are aware that I have been doing daily Perl feature series for sometimes now, I have seen so much interest in the new/improved features brought in Perl v5.36. All credit goes to the hard work and dedication of the team responsible for the release. I have got all the daily feature posts saved in the GitHub repository…
Hi,
4 weeks ago I asked you to support the Perl Weekly. It got very little response. Then 2 weeks ago I wrote how disappointed I am. Wow, the abuse I received for that. Both on Reddit an in private emails.
The funny thing is that the people who got upset that I asked for people to show their support are mostly the ones who never did anything for Perl.
However, the really imporant thing is that within 24 hours some 20 additional people started to support Mohammad and today we are already at 50 supporters! I was very impressed. Thank you!
Thank you!
In any case, think about this as a fund-raiser for…
Hi there,
A big round of applause to the entire team behind the ground breaking release of Perl v5.36. I have been following the features of the latest release very closely. I am confident it would be a solid foundation for Corinna and v7.
Have you had chance to play with Perl v5.36?
If not then please do checkout my blog post, where I shared my first hand experience playing with Perl v5.36.
Have you ever thought of contributing to your favourite language, Perl?
A little over a decade, I submitted a small patch via email. Those days, the process was not as smooth as it is today. Unfortunately I nev…
Hi there,
Two weeks ago I asked you to show your support of the newsletter by supporting Manwar via Patreon. 2 people added their support. Let me thank the two of you and to all the others who were already supporting him or me!
However, I also have to say I am utterly disappointed. There are 4,700 subscribers and only 25 who would support Manwar?
There is a recurring discussion on why Perl is disappearing. This is part of it. Very few people contribute to the Perl ecosystem.
I get it, not everyone feels up to the task of maintaining a CPAN module or writing an article. Not everyone has the time fo…
Hi there,
Finally we have yet another feature packed release Perl v5.36, thanks to the entire team involved.
Do you want to know all about the latest release? If yes then please refer to the official page for more informations.
The very first question comes to our mind after the Perl v5.36 release is What happened to v7?
The Perl Steering Council (PSC) came up with the detailed response about everything including v7 in the official blog page.
I have been closely following the development of Modern OO in core Perl i.e. Corinna. I am now looking forward to the next release i.e. Perl v5.38, which is l…
Hi there!
Two weeks ago I wrote about the issues we are facing with the Perl Weekly. I got a lot of responses and then yesterday I also noticed there were quite few comments on Reddit as well. Let me thank all the responses now.
Many people suggested that we could switch to sending out every 2 weeks or once a month, but I don't think either of those would be a good idea. Some people suggested we (Mohammad and myself) should write more articles or interview people. Well, no. The Perl Weekly is specifically about collecting your content and sharing it. So it is the wider Perl community that could…
A new and shiny version of Perl, 5.36 has been released last week. It contains a lot of very nice improvements and new features. As I'm also currently starting a fresh project, I decided it's a good time to build a new docker (in fact podman) base image to use for some new apps / scripts etc.
Spoiler: Here's my (current) final Dockerfile! Or read on for the long story...
There are of course official Perl Docker images available, in two variants: There is perl:5.36.0
and perl:5.36.0-slim
. The first one is nearly 900MB big, while slim
is slimmer with 144MB. I don't like big images, so I first trie…
I started with a new project recently, which means I have to use yet another Google Workspace (i.e. gmail for businesses). While having the gmail webapp open in multiple Firefox Multi-Account Containers is an option, it's not something I like to do. And I don't really like the gmail web interface anyway. I prefer mutt (and use it since forever,,,). Some years ago I sort of managed to read gmail mails via IMAP, but couldn't get sending to work. So I decided to give this another try. And it worked!
OverviewI was getting more and more annoyed with twitter in the last few months (mostly because I had to click "See [some annoying feature] less often" several times a day) and the whole Musk-takeover finally pushed me over the edge. I've set up an account on Mastodon Technology and plan to use this nice, open source, federated tool more and more, and leave twitter behind.
I never really used twitter as a primary platform, but used it to automatically "promote" some of the stuff that's happening on this website. So now I have to port this tools to use Mastodon. Which turned out to be quite easy:
Mastodo…A common critique about slides to my talks is that they are rather annoying to read, because one has to page through the "presentation mode" by clicking next or hitting Enter
a lot0.
Yesterday I started to change this, and tonight I added some finishing touches like responsive HTML/CSS and an external CSS file. My last three talks are now converted to the new layout, the older ones will follow soon.
You can get to the "single page" view by following the "All in one HTML"-Link. This page should also work ok-ish on small screen sizes (images are shrunk, and preformatted text (i.e. code samples) wi…
Today I spend a few hours hunting a weird bug. I got a report that people entering data for the Steiermärkische Landesbibliothek where not able to find duplicate entries when adding new books. In theory, Koha should search through all the already existing data and present the user with a dialog if they maybe want to reuse the existing entry, if one is found:
This works when an ISBN was entered, but not when "only" title, author and some other data was available. To make things a bit more complicated, we're using the not-default ElasticSearch backend, as opposed to the old-school Zebra0 index fo…
The easiest way to get started with Perl is to use PerlBanjo.com.
Read more:
Easiest Way to Get Started with Perl - Perl ABC
I explain how to write tests using Github Actions. This tests are run on Windows, Linux/Ubuntu(64bit, 32bit), Mac, and support Perl 5.8. Dependent CPAN modules can be used.
This article is originally How to Write Tests using Github Actions - Perl ABC
Examples of Tests using Github ActionsSee examples at first.
Downloading cpanmDownload cpanm
into your home direcotry of your product and add excutable permission to it.
curl -L http://cpanmin.us > cpanm chmod +x cpanmGithub Actions Definitions
These are Github Actions.
Linux - Ubuntu - 64bit*Ubuntrulinux-ubuntu-latest.yml*name: linux-ubun…
This week’s Perl and Raku Conference 2022 in Houston was packed with great presentations, and I humbly added to them with a five-ish minute lightning talk on two of Perl’s more misunderstood functions: map
and grep
.
(Sorry about the ”um”s and ”ah”s…)
Many beginning Perl programmers don’t understand the map and grep functions and avoid them. But they’re the key to many solutions under the heading of “list pr…
I’ve written much about list processing in Perl, and this talk was based on the following blog posts:
After a long break, I'm back. Without further ado, let's go through the two challenges this week.
Task 1: Brilliant Numbers TaskWrite a script to generate first 20 Brilliant Numbers.
Brilliant numbers are numbers with two prime factors of the same length.
The number should have exactly two prime factors, i.e. it’s the product of two primes of the same length.
My solutionThis is one of those tasks where given we are dealing with such small numbers, it is easier to just brute force things. In the main function, I have the value l
for the length of the primes…
I explain the way to read Perl core source codes. Perl 5.36.0 is used in this description.
This is originally The way to read Perl core source codes | Perl ABC
Where is main function?main
function is the entry point of perl
command.
It is written in perlmain.c
, but Perl has no C source code that name is perlmain.c
.
perlmain.c
is generated by Makefile.SH using ExtUtils::Miniperl.
Processing perl command line arguments are started from perl_parse function.
perl_parse
is defined in perl.c.
Go forward to parse_body function.
parse_body
is defined in perl.c
Yo…
Last I was fascinated by Simon Willison's article A Datasette tutorial written by GPT-3. Datasette is a project I've been following for a while now. It's tool for exploring data stored in SQLite databases. GPT-3 was new to me, but it seems it's an AI for writing articles from simple text prompts. I had a quick look at the web page for it, but couldn't find any obvious way to actually try it out, so I filed it away to investigate further at some point in the future.
But today, I saw another article by Simon called How to play with the GPT-3 language model which gave basic instructions on getting…
The examples used here are from the weekly challenge problem statement and demonstrate the working solution.
Part 1Write a script to generate the first 20 Brilliant Numbers.
Solution
use strict;
use warnings;
sub prime_factor{
my $x = shift(@_);
my @factors;
for(my $y = 2; $y <= $x; $y++){
next if $x % $y;
$x /= $y;
push @factors, $y;
redo;
}
return @factors;
}
sub is_brilliant{
my($n) = @_;
my @factors = prime_factor($n);
return @factors == 2 && length($factors[0]) == length($factors[1]);
}
sub n_brilliants{
my($n…
The examples used here are from the weekly challenge problem statement and demonstrate the working solution.
Part 1Calculate the first 13 Perrin Primes.
Solution
use strict;
use warnings;
use boolean;
use Math::Primality qw/is_prime/;
sub n_perrin_prime_r{
my($n, $perrins, $perrin_primes) = @_;
return $perrin_primes if keys %{$perrin_primes} == $n;
my $perrin = $perrins->[@{$perrins} - 3] + $perrins->[@{$perrins} - 2];
push @{$perrins}, $perrin;
$perrin_primes->{$perrin} = -1 if is_prime($perrin);
n_perrin_prime_r($n, $perrins, $perrin_primes);
}
sub perrin_primes…
The examples used here are from the weekly challenge problem statement and demonstrate the working solution.
Part 1Write a script to find out first 10 circular primes having at least 3 digits (base 10).
Solution
use strict;
use warnings;
use boolean;
use Math::Primality qw/is_prime/;
sub is_circular_prime{
my($x, $circular) = @_;
my @digits = split(//, $x);
my @rotations;
for my $i (0 .. @digits - 1){
@digits = (@digits[1 .. @digits - 1], $digits[0]);
my $candidate = join("", @digits) + 0;
push @rotations, $candidate;
return false if !is_prime($ca…
The examples used here are from the weekly challenge problem statement and demonstrate the working solution.
Part 1Plot lines and points in SVG format.
Solution
use strict;
use warnings;
sub svg_begin{
return <<BEGIN;
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg height="100%" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http…
The examples used here are from the weekly challenge problem statement and demonstrate the working solution.
Part 1Write a script to find all prime numbers less than 1000, which are also palindromes in base 10.
Solution
use strict;
use warnings;
use Math::Primality qw/is_prime/;
sub palindrome_primes_under{
my($n) = shift;
my @palindrome_primes;
{
$n--;
unshift @palindrome_primes, $n if(is_prime($n) && join("", reverse(split(//, $n))) == $n);
redo if $n > 1;
}
return @palindrome_primes;
}
MAIN:{
print join(", ", palindrome_primes_under(1000…
The examples used here are from The Weekly Challenge problem statement and demonstrate the working solution.
Part 1You are given a list of numbers. Write a script to calculate the sum of the bitwise & operator for all unique pairs.
Solution
use strict;
use warnings;
sub sum_bitwise{
my $sum = 0;
for my $i (0 .. @_ - 2){
my $x = $_[$i];
map {$sum += ($x & $_)} @_[$i + 1 .. @_ - 1];
}
return $sum;
}
MAIN:{
print sum_bitwise(1, 2, 3) . "\n";
print sum_bitwise(2, 3, 4) . "\n";
}
Sample Run
$ perl perl/ch-1.pl
3
2
NotesSince most of the code for both parts of…
As a followup to the CPAN Mirror List changes from last year, we're announcing that FTP service on ftp.cpan.org and ftp.perl.org is being deprecated. This means that any CPAN clients configured to use them will fail to fetch modules.
For the past several years, CPAN clients have defaulted to www.cpan.org to fetch modules, so this should only affect users using very old CPAN clients (usually associated with old versions of Perl) who did not explicitly set a mirror.
We're not setting a firm timeline on this depreciation, but there are only a small number of compatible FTP mirrors remaining, and the…
You may have noticed that some perl.org 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!
We sent the below email to all the CPAN Mirror contacts yesterday:
An Important Update about the CPAN Mirror ListYou'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 CPAN.pm) 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…
The perl.com 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 CPAN.pm use o conf urllist http://www.cpan.org/
# perl -MCPAN -eshell
cpan shell -- CPAN exploration and modules installation (v2.20)
Enter 'h' for help.cpan[1]> o conf urllist http://www.cpan.org/
Please use 'o conf commit' to make the config perma…
Update 2/21/2021:
Updated information about the future of rt.cpan.org can be found at https://news.perlfoundation.org/post/rt-cpan-org-future
Update 2020-12-13:
rt.cpan.org 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 github.com 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:
API-Eulerian-API-Eulerian | MJONDET | v0.3 | v0.3 | Sample EDW script for querying through REST and get a CSV file |
Acme-Mitey-Cards | TOBYINK | 0.001 | 0.005 | demo of Mite |
Alien-Brotli | RRWO | v0.1.0 | v0.2.0 | Download and install Brotli |
Alien-CFITSIO | DJERIUS | v4.1.0.1 | v4.1.0.5 | Build and Install the CFITSIO library |
Amon2-Plugin-Web-CpanelJSON | KFLY | 0.01 | 0.01 | Cpanel::JSON::XS plugin |
App-optex-pingu | UTASHIRO | 0.01 | 0.02 | optex make-everything-pingu filter |
App-orgadb | PERLANCAR | 0.001 | 0.002 | An opinionated Org addressbook tool |
Bencher-Scenario-Hash-Unique | PERLANCAR | 0.002 | 0.002 | Benchmark Hash::Unique |
Bencher-Scenario-Lis… |
Acme-PERLANCAR-Test-Misc | PERLANCAR | 0.001 | 0.002 | Test various things |
Addr-MyIP | STEVEB | 0.05 | 0.05 | Get your public facing IPv4 or IPv6 address |
Algorithm-QuadTree-XS | BRTASTIC | 0.01 | 0.02 | XS backend for Algorithm::QuadTree |
Alien-DjVuLibre | SKIM | 0.01 | 0.04 | Find or download and install DjVuLibre |
Alien-LZ4 | ZMUGHAL | 0.01 | 0.01 | Find or build LZ4 |
Alien-OpenCV | ZMUGHAL | 0.001 | 0.001 | Find or build OpenCV computer vision library |
Alien-zlib | ZMUGHAL | 0.01 | 0.01 | Find or build zlib |
Alien-zstd | ZMUGHAL | 0.01 | 0.01 | Find or build zstd |
AnyEvent-Sway | JOHNMERTZ | 0.18 | 0.18 | communicate with the Sway window manager |
App-Cheats | TIMKA | 0.02 | … |
Acme-CPANModules-Set | PERLANCAR | 0.001 | 0.001 | List of modules that deal with sets |
Acme-CPANModules-Symlink | PERLANCAR | 0.001 | 0.001 | List of modules that deal with symbolic links (symlinks) |
Acme-Inabajun-Utils | INABAJUN | 0 | 0.01 | The great new Acme::Inabajun::Utils! |
App-FizzBuzz | TTKCIAR | 1.00 | 1.00 | Maximally codegolfed FizzBuzz |
App-Greple-git | UTASHIRO | 0.01 | 0.01 | Greple git module |
App-Greple-subst-desumasu | UTASHIRO | 0.01 | 0.02 | Japanese DESU/MASU dictionary for App::Greple::subst |
App-PDF-Overlay | JV | 0.001 | 0.002 | pdfolay – insert a PDF document over/under another document |
App-RunStopRun | GRAY | 0.01 | 0.03 | limit… |
API-MailboxOrg | PERLSRVDE | 1.0.0 | 1.0.2 | Perl library to work with the API for the Mailbox.org API |
Acme-CPANModules-SQLite | PERLANCAR | 0.001 | 0.001 | List of modules related to SQLite |
Alien-7zip | ZMUGHAL | 0.01 | 0.01 | Find or build 7-Zip |
Alien-SWIG4 | ZMUGHAL | 0.04 | 0.04 | Find or build SWIG v4 C/C++ interface generator |
Alien-patchelf | SLAFFAN | 0.01 | 0.04 | Alien package for the patchelf utility |
App-vcardtidy | MLAWREN | v1.0.0_1 | v1.0.0_3 | tidy up VCARD files |
ArrayData-Lingua-Word-EN-Enable | PERLANCAR | 0.002 | 0.003 | The Enable word list (English) |
ArrayData-Lingua-Word-EN-Wordle | PERLANCAR | 20220306.0.0 | 20220306.0.1 | Wordle… |
API-Eulerian | MJONDET | v0.1 | v0.1 | Sample EDW script for querying through REST and get a CSV file |
Acme-CPANModules-Foozilla | PERLANCAR | 0.001 | 0.001 | Ideas for module/script/project name using 'zilla' |
Acme-CPANModules-Parse-HumanDate | PERLANCAR | 0.001 | 0.001 | Modules that parse human date/time expression |
App-Greple-frame | UTASHIRO | 0.01 | 0.02 | Greple frame output module |
App-Greple-wordle | UTASHIRO | 0.01 | 0.10 | wordle module for greple |
App-ISBN-Format | SKIM | 0.01 | 0.02 | Base class and script for ISBN formatting. |
App-easyDifferentialGeneCoexpressionWrapper | AALAMEER | 1 | 1 | easyDifferentialGeneCoexpressionWrapper… |
Acme-CPANModules-Interop-Ruby | PERLANCAR | 0.001 | 0.001 | Modules/applications that help interoperate with the Ruby world |
Acme-CPANModules-KitchenSinks | PERLANCAR | 0.001 | 0.001 | Kitchen sink libraries |
Acme-Signature-Arity | TEAM | 0.001 | 0.003 | find out how a piece of code expects to be called |
Algorithm-Graphs-TransitiveClosure-Tiny | AAHAZRED | 0.01 | 1.00 | Calculate the transitive closure. |
Amazon-SecretsManager | BIGFOOT | v1.0.0 | v1.0.0 | AWS Secrets Manager |
App-DesktopOpenUtils | PERLANCAR | 0.001 | 0.002 | Utilities related to Desktop::Open |
App-Greple-jq | UTASHIRO | 0.02 | 0.05 | greple module for jq frontend |
App-PerlRelea… |
This is the weekly favourites list of CPAN distributions. Votes count: 49
Week's winners (+3): perl
Build date: 2022/06/25 22:32:43 GMT
Clicked for first time:
Increasing its reputation:
These are the five most rated questions at Stack Overflow last week.
Between brackets: [question score / answers count]
Build date: 2022-06-25 22:31:06 GMT
This is the weekly favourites list of CPAN distributions. Votes count: 46
Week's winner (+3): Test2::Suite
Build date: 2022/06/18 15:57:23 GMT
Clicked for first time:
Increasing its reputation:
These are the five most rated questions at Stack Overflow last week.
Between brackets: [question score / answers count]
Build date: 2022-06-18 15:48:59 GMT
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…
When 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…
There was an interesting discussion on #perl6 (irc.freenode.net) 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…
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…
I 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…
When I started programming, back in the day, CGI (the Common Gateway Interface) was still widely used. Usually the Apache webserver would just execute a script or a binary with some environment variables set and serve whatever the executable sent to the standard output, while keeping the standard error in the logs.
This simple and straightforward mechanism can still be used for small programs, but larger applications usually want to save the start-up time and live longer than just a single request.
At that time Perl was used far more often than now, and it had (and still has) the CGI.pm modul…
Over the years I’ve seen and implemented different full-text search applications using various technologies: plain SQL, PostgreSQL, Elasticsearch, Solr, and most recently Xapian.
While Solr and Elasticsearch are very well known, Xapian, despite the fact that it’s available and packaged in all the major GNU/Linux distributions, doesn’t seem to be so popular, at least not among project managers.
But Xapian is fast, advanced, can be configured to do faceted searches (so the user can filter the search results), and my favorite, is fast to build and has virtually no maintenance overhead.
Its main feat…
A casual stroll through the world of Unicode and regular expressions—Photo by Presidio of Monterey
Character classes in regular expressions are an extremely useful and widespread feature, but there are some relatively recent changes that you might not know of.
The issue stems from how different programming languages, locales, and character encodings treat predefined character classes. Take, for example, the expression \w
which was introduced in Perl around the year 1990 (along with \d
and \s
and their inverted sets \W
, \D
, and \S
).
The \w
shorthand is a character class that matches “word charact…
Upgrading Postgres is not quite as painful as it used to be, thanks primarily to the pg_upgrade program, but there are times when it simply cannot be used. We recently had an existing End Point client come to us requesting help upgrading from their current Postgres database (version 9.2) to the latest version (9.6—but soon to be 10). They also wanted to finally move away from their SQL_ASCII encoding to UTF-8. As this meant that pg_upgrade could not be used, we also took the opportunity to enable checksums as well (this change cannot be done via pg_u…
We do a lot of ecommerce development at End Point. You know the usual flow as a customer: Select products, add to the shopping cart, then check out. Checkout asks questions about the buyer, payment, and delivery, at least. Some online sales are for “soft goods”, downloadable items that don’t require a delivery address. Much of online sales are still for physical goods to be delivered to an address. For that, a postal code or zip code is usually required.
I say usually because there are some countries that do not use postal codes at all. An ecommerce site that expects to ship prod…
The Perl Dancer Conference is a great event, now in its third year. The event took place in the same location as last year in Vienna, Austria at the Hotel Schani Wien. For those of you who have never visited Vienna, it is a perfect place to bring the family. From visiting the beautiful parks to taking a scenic ride on the Danube River, the beautiful and historic city is known for its rich art and musical culture, and has much to offer.
I was very excited to not only attend but also give a talk this year. My talk titled “Dancing in the Clouds” also coincided with the…