Just me and Graham this week.
builtin::nan needs better documentation on the kind of NaN it provides.
- We discussed lots about
builtin and lexical imports, and how to handle a few odd cornercases.
- Perl 5.39.7 is now out; we need to work out the schedule for the final few devel releases and the real thing in May.
Hey everyone,
Happy Holidays! Dancer2 1.1.0 has been released and is on its way to CPAN. It has one really awesome new feature: named routes.
With this update, you can name each route in your Dancer2 application, then refer to that route by name with a new keyword, uri_for_route. You have a lot of control over how this route is constructed, and can use it anywhere you were previously using uri_for. This helps you to avoid the need for lengthy URL references in your code, and makes it easier for you to build applications that are easier to grow, maintain, and later refactor.
You can read more about it in the Dancer2 manual, or check out the pull request that introduced the change. As a bonus, the Twelve Days of Dancer (our mini-advent calendar) launches this week, and Sawyer has written a great article that covers this new feature and keyword in-depth.
Happy Dancing!
Jason/CromeDome
These are some answers to the Week 270, Task 1, of the Perl Weekly Challenge organized by Mohammad S. Anwar.
Spoiler Alert: This weekly challenge deadline is due in a few days from now (on May 26, 2024 at 23:59). This blog post provides some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.
Task 1: Special Positions
You are given a m x n binary matrix.
Write a script to return the number of special positions in the given binary matrix.
A position (i, j) is called special if $matrix[i][j] == 1 and all other elements in the row i and column j are 0.
Example 1
I released Juliagraph an interactive fractal painter for Julia and Mandelbrot types of fractal.

We have had a good number of responses, but would like more. And time is running out! Please take this survey and share with your Perl contacts.
Survey URL: https://forms.gle/DDPWsNqEsZW8AyWX7
The track would target academic and industrial STEM applications, and emulate in some way traditional science conference tracks; meaning the talks would be based on paper and poster submissions. If this came to pass, the Science Perl Committee would also follow up with the publishing of the papers in an official proceedings of this track.
Survey officially closes on Thursday, November 23, 2023. But we would love your feedback!
Sincerely,
Brett Estrade
oodler@cpan.org
Chairman, Science Perl Committee
These are some answers to the Week 243, Task 1, of the Perl Weekly Challenge organized by Mohammad S. Anwar.
Spoiler Alert: This weekly challenge deadline is due in a few days from now (on November 19, 2023 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: Reverse Pairs
You are given an array of integers.
Write a script to return the number of reverse pairs in the given array.
A reverse pair is a pair (i, j) where: a) 0 <= i < j < nums.length and b) nums[i] > 2 * nums[j].
Example 1
Input: @nums = (1, 3, 2, 3, 1)
Output: 2
(1, 4) => nums[1] = 3, nums[4] = 1, 3 > 2 * 1
(3, 4) => nums[3] = 3, nums[4] = 1, 3 > 2 * 1
Example 2
The Perl and Raku Foundation is thrilled to announce that the FOSDEM
organising team has accepted our proposal to set up a DevRoom on
Saturday, February 3rd 2024. It has been quite a few years since the
last Perl DevRoom at FOSDEM.
Historically, they have always been well attended and packed.
Time for an Update
Since last time, a lot has happened, and TPRF is excited to help create
this venue for sharing news with developers from Europe and across the
globe. Many FOSDEM visitors have a background using Perl, but may have
missed out on recent developments.
Larry Wall himself was a guest speaker at FOSDEM in 2015 to announce
Perl 6, which was later renamed to Raku. Much has happened since then,
and there is lots to share!
Participation
Ted Unangst:
And now we’re trapped. There’s only one friend variable, constantly changing as we go through the loop, with the most likely result one of our friends will get half a dozen messages, while the other five receive nothing, to the annoyance of both groups.
Funny that Perl got this one right when not only many before didn’t but many since also haven’t.
In Go, as Ted says, they may even change the language to fix it
; in Javascript, they already have.
I recently added Oracle Database support to SQL::Inserter (check it out if you'd like simple to use, high-performance inserting to SQL databases). I had not used an Oracle Database since my uni days 20 years ago, so I had to set one up to test it.
Even though Oracle provides a free development DB, the process is not as simple as Postgres/MySQL etc., so I thought I'd document it for future reference.
There are basically two ways you can go, with Oracle providing instructions either for a VirtualBox VM, or Docker. For the purposes of this article, we'll use VirtualBox. If you prefer Docker, you can follow Oracle's instructions and skip the next section.
Setting up the Oracle VM
Oracle provides instructions for setting up a VM with their latest 23c Database.
To sum up, you download and install VirtualBox, as well as the 23c VM image (.ova).
Launch VirtualBox, go to File->Import Appliance and select the .ova file that you just downloaded. You can leave the defaults for the import.
Hey Dancers! We’re doing an advent calendar this year, and we’d love for you to contribute. Tell us your Dancer success story! Write about a project you worked on that used Dancer, a plugin you wrote, a plugin you love, anything.
December is coming fast, so get your ideas in now. Please reply to this post if you’d be interesting in helping with this year’s advent calendar.
Happy New Year!
This week, we discussed some recent mailing-list threads:
meta experiments continue. They should probably provoke some kind of runtime warning about being experimental, but exact details need discussion
- Ovid requests to write another PPC about value constraint checks. We don’t object as such, but would remind that a specification alone does not guarantee an implementation and we’re still busy implementing the previous big idea (class)
Greetings Perl People!
There is a strong official consideration by The Perl and Raku Foundation of including a new kind of track to the 2024 Perl and Raku Conference in Las Vegas.
Survey URL: https://forms.gle/DDPWsNqEsZW8AyWX7
The track would target academic and industrial STEM applications, and emulate in some way traditional science conference tracks; meaning the talks would be based on paper and poster submissions. If this came to pass, the Science Perl Committee would also follow up with the publishing of the papers in an official proceedings of this track. But we need your feedback!
Survey URL: https://forms.gle/DDPWsNqEsZW8AyWX7
Please complete and share the survey link so that we may convince the already overworked TPRC planning committee that it's worth the extra effort :-). You may also express support in the comments section below or email them directly to me so that I may forward them to the TPRF - oodler@cpan.org. There are ongoing discussions in the TPRF Slack also - see you there! A call for volunteers will be made at such a time that this proposal is accepted.
Sincerely,
Brett Estrade
oodler@cpan.org
Chairman, Science Perl Committee
After a long time of work, the videos are finally available on Youtube. 20 presentations with a total of 14 hours of airtime review the three days of the workshop and you can watch the things you missed on site.
We would especially like to thank Lee Johnson, who made the recordings, and
the presenters, of course, without whom the workshop would not have taken place.
The support from our sponsors helps us make the workshop take place.
OTOBO
united-domains
Perl-Services.de Renée Bäcker
Geizhals Preisvergleich
PayProp
The recordings of the German Perl Workshop 2023 are organised in the order of the day in a playlist available at
gpw2023.
We are planning the German Perl Workshop 2024 again and are already in the final negotiations. As soon as we have a place and date fixed, we will update this post and also make a separate announcement.
Yes, it's true. Config::Tiny now allows you to assign an array of values to a key.
The docs have been updated to include a new section, ARRAY SYNTAX.
Various examples are documented there and in test files. Sample usage:
[section]
greetings[]=Hello
greetings[]=World!
one=two
Foo=Bar
Note: The 2 lines of greetings can be separated by other lines too.
You access these values like this:
say $Config->{section}->{greetings}->[0];
say $Config->{section}->{greetings}->[1]
This patch was kindly provided by Steven Schoch.
See the Changes file for details.
We
- Arranged for a representative from TPRF to join us in January to discuss roadmaps
- Started discussing what might turn up in the PSC talk at FOSDEM
We’re skipping next week due to Christmas, so next meeting should be on 2024-01-04
These are some answers to the Week 269, Task 2, of the Perl Weekly Challenge organized by Mohammad S. Anwar.
Spoiler Alert: This weekly challenge deadline is due in a few days from now (on May 19, 2024 at 23:59). This blog post provides some solutions to this challenge. Please don’t read on if you intend to complete the challenge on your own.
Task 2: Distribute Elements
You are given an array of distinct integers, @ints.
Write a script to distribute the elements as described below:
1) Put the 1st element of the given array to a new array @arr1.
2) Put the 2nd element of the given array to a new array @arr2.
Once you have one element in each arrays, @arr1 and @arr2, then follow the rule below:
If the last element of the array @arr1 is greater than the last
element of the array @arr2 then add the first element of the
given array to @arr1 otherwise to the array @arr2.
When done distribution, return the concatenated arrays. @arr1 and @arr2.
On behalf of the Dancer Core Team, I am beyond excited to present you with Dancer2 1.0.0.
So how did we get here? Why now? I'll cover the specifics in a future blog post, but suffice it to say for now, we're stable, and we've been stable for a long time, but this was never reflected in our versioning. It's beyond time to commemorate that milestone.
If you're expecting big changes, you'll be disappointed that there aren't many on the technical side. Much of what's in this release involves adding some polish in spots, and smoothing out some jagged edges in others. Some important highlights include:
Hello everybody! Welcome back to the Weekly Challenge series, where today we're working on dates again. I like these challenges in particular, for some reason. In this case, we have a rather simple challenge except that it gives us less common date formats than usual.
The challenge gives us a year, month, week(day) of the month, and day of week. Now DateTime provides us with get operations to find WoM and DoW info, but it doesn't provide set operations. For that we need to do a little math. Here's the code below: