2024.04.03 in #663The Weekly Challenge - 263
I have no clue why avoiding the use of 'my' in declaring variables. I would love to know the reason behind it.
2024.04.10 in #664The Weekly Challenge - 264
Thanks for sharing the special use of subsdtr(). You don't see this very often. Keep sharing.
2024.04.18 in #665The Weekly Challenge - 265
CPAN can never let you down. It has solution for every task. See yourself how?
2024.05.28 in #671The Weekly Challenge - 271
Smart move to get the help of CPAN module. Thanks for promoting the use of CPAN modules. Keep it up great work.
2024.06.07 in #672The Weekly Challenge - 272
Nice promotion of CPAN modules. I must admit, the use of CPAN module makes the code compact and readable. Well done.
2024.06.14 in #673The Weekly Challenge - 273
Nice promotion of CPAN modules to solve the challenges. I must admit, the discussion is very engaging. Well done.
2024.07.04 in #676The Weekly Challenge - 276
As always, we see the use of CPAN modules again. All heavy lifting done by the modules, rest is just a thin layer on top. Keep it up great work.
2024.07.09 in #677The Weekly Challenge - 277
Full on demo of CPAN modules. Happy to see the popularity among team members. Well done and keep it up.
2024.07.17 in #678The Weekly Challenge - 278
Pure Perl solution without any dependency this week covering every examples. Great work.
2024.07.26 in #679The Weekly Challenge - 279
Use of Perl regex magic can be very handy. Thanks for your contributions every week.
2024.08.01 in #680The Weekly Challenge - 280
Simple use of hash in Perl is good enough for Twice Appearance task. Smart approach, well done.
2024.08.08 in #681The Weekly Challenge - 281
Predefined set of all possible moves can be very handy. Well documented and easy to follow algorithm. Keep it up great work.
2024.08.14 in #682The Weekly Challenge - 282
Clever use of regex tr in action and well documented solution. Keep sharing knowledge.
2024.08.20 in #683The Weekly Challenge - 283
Another gem from CPAN to get the quality work. Impressive work, keep it up.
2024.08.29 in #684The Weekly Challenge - 284
Once again you see the power of CPAN module. It gets job done in no time. Well done and thanks for sharing.
2024.09.05 in #685The Weekly Challenge - 285
Regex? I never thought of regex when dealing with 'No Connection' task. It is very powerful and different. Well done.
2024.09.21 in #687The Weekly Challenge - 287
I love self documented solution as shared in the blog post. It helps in breaking down the regex approach. Keep sharing the knowledge.
2024.10.02 in #689The Weekly Challenge - 289
Keeping it simple and easy to follow style. Self explanatory solutions in Perl. Thanks for your contributions.
2024.10.18 in #691The Weekly Challenge - 291
Self documented solution in Perl covering every examples. Thanks for your contributions.
2024.10.24 in #692The Weekly Challenge - 292
Simple yet effective algorithm gets you the desired result. It is self explanatory. Thanks for the contribution.
2026.02.09 in #760The Weekly Challenge - 360: Text Justifier
This post demonstrates a practical and idiomatic Perl solution by leveraging String::Pad for Text Justifier, showcasing how using existing modules can simplify challenge tasks. The concise examples with clear input/output make it easy to grasp the task mechanics and verify correctness.
2026.02.09 in #760The Weekly Challenge - 360: Word Sorter
This write-up delivers a succinct and idiomatic Perl solution to the Word Sorter task, using a case-insensitive sort and clean split/grep logic that keeps words unchanged while ordering them alphabetically. The included test cases make the behavior clear and easy to verify.
2026.02.17 in #761Zeckendorf Representation
The write-up presents a memory-efficient and well-explained Perl implementation for computing the Zeckendorf representation, cleverly using only two Fibonacci values at a time and clear test examples to illustrate the logic. Its structured presentation and readable code make it a helpful reference for anyone interested in elegant algorithmic Perl solutions.
2026.02.17 in #761Find Celebrity
The celebrity finder solution delivers a clear and self-contained Perl implementation that uses readable grep-based checks to identify the celebrity by row and column conditions, backed by several solid test cases illustrating correctness. Its straightforward logic and minimal reliance on external modules make it both accessible and practical for Perl programmers exploring matrix-based algorithms.
2026.02.25 in #762Echo Chamber
This Weekly Challenge 362 post offers a clean, beginner-friendly Perl implementation of the 'Echo Chamber' task, contrasting a straightforward loop approach with a more declarative map-and-join variant. The explanations highlight readable coding practices and clarify the benefits of each style, making it both instructive and approachable for Perl programmers.
2026.02.25 in #762Spellbound Sorting
This PWC 362 Part 2 post presents a clear and efficient Perl solution for sorting numbers by their spelled-out word forms using a classic Schwartzian Transform. The explanation shows thoughtful use of Lingua::Any::Numbers for multilingual support and highlights how to avoid repeated conversions for better performance. It's a technically solid and instructive example of Perl's data-processing strengths.
2026.03.06 in #763The Weekly Challenge - 363
The write-up provides a clear and well-structured solution to the challenge, with careful input validation and readable Perl code that emphasizes robustness. The step-by-step logic and defensive programming style make the implementation easy to understand and reliable.
2026.03.10 in #764The Weekly Challenge - 364: Decrypt String
This post presents a clear and well-structured solution to one of the Perl Weekly Challenge tasks. Reinier explains the approach step by step and supports it with concise Perl code, making the logic easy to follow for readers interested in algorithmic problem solving. It is a solid technical walkthrough that demonstrates practical Perl usage while keeping the explanation accessible and educational.
2026.03.10 in #764The Weekly Challenge - 364: Goal Parser
This post presents a thoughtful solution to the second task of Perl Weekly Challenge 364, with a clear explanation of the algorithm and the reasoning behind it. Reinier walks through the logic step by step and supports it with concise Perl code, making the approach easy to understand. It is a well-written technical note that demonstrates practical problem solving and highlights Perl's strengths for implementing compact and readable solutions.
2026.03.12 in #764Mastering Perl Prima: A Step-by-Step Guide for Beginners
The article explains that Prima provides a rich set of widgets and tools for creating graphical interfaces such as windows, buttons, and other interactive elements. With relatively small pieces of code, developers can create a working GUI application and run it through Prima's event loop. This makes it possible to build desktop programs in Perl without relying only on command-line interfaces or web frameworks.
2026.03.18 in #765The Weekly Challenge - 365: Alphabet Index Digit Sum
This document has been created in a deliberate and orderly way which shows a good understanding of the problem at hand as well as the logic behind arriving at the answer; it also includes attention to detail when implementing the solution. The solution is practically designed as well as creatively developed and uses Perl features thoughtfully to create an efficient and effective answer.
2026.03.18 in #765The Weekly Challenge - 365: Valid Token Counter
It is a clear and well thought-out solution that uses a sound problem-solving method, reasoning clearly, and has clean, idiomatic Perl code. The method is easy to implement, efficient and has demonstrated the author's understanding of the problem and their attention to edge cases in the implementation process.
2026.03.25 in #766The Weekly Challenge - 366: Count Prefixes
The writing style used by Reinier Maliepaard in his submission demonstrates a logical and coherent framework and logical correctness; Making it easy for the reader to follow. Reinier’s structure of writing reflects discipline and analytic thought, along with succinctness, resulting in a Combination of Clear and Robust Perl Source Code, which matches the strategy of problem-solving as well.
2026.03.25 in #766The Weekly Challenge - 366: Valid Token Counter
The Week 366 second post by Reinier Maliepaard provides another example of his methodical and rational approach to problem-solving with a detailed logical breakdown along with concise Perl code to solve the problem. The article focuses on providing a clear, correct, and easily read explanation of how to work through validation problems, offering users of all skill levels an accessible, educational account.
2026.03.31 in #767The Weekly Challenge - 367: Max Odd Binary
The post gives a very complete and well supported solution to the "Max Odd Binary" challenge using Perl, using the principles of defensive programming, through good input validation. The way he technically describes his solution is very helpful since he is able to explain perl specific idioms such as tr///, and also provide good alternatives to count bits when using safe and/or optimised methods so that your code will not fail.
2026.03.31 in #767The Weekly Challenge - 367: Conflict Events
The second task solution provides a consistent, well-understood and detailed Perl implementation for identifying conflicting events by accentuating how to process time-based intervals that cross midnight boundaries. The use of a simple mathematical representation (normalisation of times to minutes), and an efficient "shift" loop to address the next day results in an exceptional algorithm that greatly simplifies complex overlapping logic.
2026.04.12 in #768The Weekly Challenge - 368: Make It Bigger
This approach is very straightforward because the next step is to compare the digits/values created after removing both the first and the second occurrence of the target digit. Using the index to find each location of the digit and then using substr to create the candidate strings is efficient, and you can easily see this through its implementation. The use of input validation will give the code additional robustness because the validation checks that there was exactly two occurrences of the digit. The structure of the code will help support the intent of the algorithm, and the test cases will be able to show the expected outcome.
2026.04.12 in #768The Weekly Challenge - 368: Big and Little Omega
This approach clearly distinguishes two omega functions by using Math::Prime::Util's factor_exp function, which returns all prime factorization as well as their respective exponents. The source code is extremely clear; it uses the number of exponent pairs (for little omega - count of distinct prime numbers) in conjunction with summing together all the exponent values (for big omega - total number of prime factors). There is also an explanation (for the math) in conjunction with the examples to make this both an educational and production-quality example.
2026.04.13 in #769The Weekly Challenge - 369: Valid Tag
In Reinier's method, a model for defensive programming has been developed that features validation of input for real alphabetic values before processing. Also, he has taken a somewhat technical approach (transforming input to remove non-letter characters by converting them to spaces in order to apply camelCase correctly while keeping word boundaries intact) through his use of multiple accurately readable regular expressions.
2026.04.13 in #769The Weekly Challenge - 369: Group Division
Reinier has created a very good tutorial solution which showcases how to use the "Perl 4-argument substr function" to extract and remove data from a string using a while loop to do so iteratively and then using string replication for the final padding makes the code extremely readable and a great technical example of using efficient in-place usage of strings.
2026.04.24 in #770The Weekly Challenge - 370: Popular Word
Reinier solution includes a simple regular expression to remove punctuation characters and a hash to count the number of occurrences of each valid word. This makes it easy to identify the most frequently used word that is not on a banned list, and provides an easily readable model from which to analyze text.
2026.04.24 in #770The Weekly Challenge - 370: Scramble String
Reinier's demonstrates pruning as an optimisation technique. If the characters sorted for both strings do not match (meaning they are not anagrams), the function returns false without going through all remaining recursive levels.
2026.05.02 in #771The Weekly Challenge - 371: Missing Value
This solution requires formalization of the detection of repeating patterns through a comprehensive and well-documented approach by treating them as a repeating two-stage model (i.e., d1 = d3 and d2 = d4). Special consideration is given to both constant and alternating sequences. The use of defined-or (i.e., //=) to unify step values, along with the straightforward relationship between each possible question mark position and its simple arithmetic reconstruction, contributes to creating a code that is highly reliable and easy to follow. Additionally, the thorough input validation provided demonstrates significant consideration for actually implementing in a real world scenario.
2026.05.03 in #771The Weekly Challenge - 371: Subset Equilibrium
This document includes an excellent comparison of two CPAN modules (Algorithm::Combinatorics and Data::PowerSet) that correctly identifies the combinatorically generated subsets by size (2 to n) are more efficient than generating the power set and filtering out the subsets to produce the same result for this specific task. The code base is very clean and well-structured; it also does a great job of utilising list slicing (@nums[@$subset]) and map to convert from 0-based to 1-based position, while making use of the helper function print_result to ensure that all output for all test cases is consistent and easy to read.
2026.05.06 in #772The Weekly Challenge - 372: Rearrange Spaces
Reinier presents a straightforward solution with his algorithmic method to achieve a successful outcome on this week's "Rearranging Spaces". This is done in Perl primarily because of its preciseness regarding how many spaces to be distributed across the gaps between the words and determining how many of the combined gaps will result in an even distribution. This post emphasizes on a well-structured plan, such as separating the words from one another using split, and then joining them back together with join and the x operator.
2026.05.06 in #772The Weekly Challenge - 372: Largest Substring
Reinier had a methodical solution written in Perl for Weekly Challenge task of finding the largest substring. He used a hash to track the first instance of each character encountered when traversing the string. When he finds two identical characters, he determines their distance by subtracting the first instance's index from the second instance's index, and keeping track of the maximum value found up to that point; if he doesn't find duplicates then he will return -1.
2026.05.12 in #773The Weekly Challenge - 373: Equal List
The analysis that Reinier provided on this challenge is truly impressive due to the systematic approach used to cover edges and validate input. The solution makes a great balance between how computer efficient it is to run while at the same time being easy to scan through for code due to well-named variables and clearly defined logical conditions. This is a great resource for developers looking to implement defensive programming and build highly maintainable systems.
2026.05.12 in #773The Weekly Challenge - 373: List Division
Reinier has presented a very clear and logical way to solve the list partitioning problem through clarity in procedural programming and appropriately managing data through effective use of algorithms. The implemented solution is easy to follow, with simple looping structures and clearly defined conditions used to divide the collection according to specification without introducing complexity into the underlying architecture. This solution is a perfect example of pragmatic programming, where simplicity, maintainability, and consistency take precedence over unnecessary abstraction.
If you are not yet subscribed, you can do it now. Free of charge:
Just ONE e-mail each Monday. Easy to unsubscribe. No spam. Your e-mail address is safe.
This newsletter is about the Perl Programming languages.