Recent Perl modules, releases and favorites.
Last updated 26 July 2025 12:30 AM
Last updated 26 July 2025 12:30 AM

Remote diff over rsync
App::remotediff is a Perl module designed to facilitate remote file comparisons using the rsync utility, allowing users to efficiently identify differences between files located on different machines. Although currently a stub module, it serves as a foundation for the remotediff script, which leverages rsync's capabilities for remote diff operations. Recent updates include a fix for a locale-specific test failure in version 1.17, enhancing the module's reliability and usability in diverse environments.

Dist-Zilla-Plugin-Test-MixedScripts
Favorite | 25 Jul 2025 09:10 PM | Author: RRWO | Version: v0.1.4
Upvotes: 1 | CPAN Testers: Pass 100.0%
Author tests to ensure there is no mixed Unicode
Dist::Zilla::Plugin::Test::MixedScripts is a Perl module designed to enhance the safety of software development by generating author tests that check for mixed Unicode scripts in code files. This module extends Dist::Zilla::Plugin::InlineFiles to create a test file (xt/author/mixed-unicode-scripts.t) that identifies potentially confusing or malicious Unicode characters, which can lead to security vulnerabilities, such as deceptive domain names that appear visually similar but are actually different. The module allows for configuration options to specify which files to test, exclude certain patterns, and define additional scripts to check. Notably, in version 0.1.3, the minimum version requirement for the underlying Test::MixedScripts was raised to v0.3.0, ensuring compatibility with the latest features and fixes.

Test2-Util-DistFiles
Favorite | 25 Jul 2025 09:09 PM | Author: RRWO | Version: v0.2.1
Upvotes: 1 | CPAN Testers: Pass 100.0%
Gather a list of files in a distribution
The Test2::Util::DistFiles module is a utility designed for Perl developers to efficiently gather lists of files within a distribution, primarily for authoring and release testing purposes. It provides the `manifest_files` function, which can return a list of files from the MANIFEST, optionally filtered by a user-defined function, such as `is_perl_file` to specifically retrieve Perl files while excluding installation scaffolding and temporary files. If a MANIFEST is absent, the module utilizes ExtUtils::Manifest to generate a list of files that would typically be included. This module is particularly useful for ensuring that the correct files are included in distributions and for maintaining clean project structures.

Dist-Zilla-Plugin-CopyFilesFromRelease
Favorite | 25 Jul 2025 09:09 PM | Author: ETHER | Version: 0.007
Upvotes: 3 | CPAN Testers: Pass 100.0%
Copy files from a release (for SCM inclusion, etc.)
Dist::Zilla::Plugin::CopyFilesFromRelease is a Perl module designed to facilitate the copying of specified files from the build directory to the distribution directory during the release process, making it easier to include these files in version control systems. Configured through the dist.ini file, users can define which files to copy and set matching patterns for file selection. This plugin enhances the functionality of Dist::Zilla by ensuring that important files, such as README or MANIFEST, are readily available for SCM inclusion. The latest version, 0.007, includes minor updates to the distribution packaging, reflecting ongoing maintenance and improvements to the module.

URI-Escape-XS
Favorite | 25 Jul 2025 07:27 PM | Author: DANKOGAI | Version: 0.14
Upvotes: 10 | CPAN Testers: Pass 100.0%
Drop-In replacement for URI::Escape
The `URI::Escape::XS` module serves as a high-performance drop-in replacement for the `URI::Escape` module, providing functions for encoding and decoding URIs in a manner compatible with JavaScript's `encodeURIComponent` and `decodeURIComponent`. It offers enhanced speed due to its XS implementation, making it particularly efficient for handling URI escaping tasks. The module supports both standard URIs and those with Internationalized Domain Names (IDN) when used with the appropriate dependencies. Notably, recent updates have improved the decoding speed and addressed compatibility issues with MSVC 2013, ensuring broader usability across different environments. This module is ideal for developers needing robust and efficient URI manipulation capabilities in their Perl applications.

POSIX-2008
Release | 25 Jul 2025 10:05 AM | Author: CGPAN | Version: 0.26
Upvotes: 3 | CPAN Testers: Pass 100.0%
Perl interface to POSIX.1-2008
The POSIX::2008 Perl module provides a comprehensive interface to the POSIX.1-2008 standard, offering many functions that are either omitted or incorrectly implemented in the core POSIX module. It includes both standard and nonstandard interfaces found in Linux, BSD, and Solaris, allowing for advanced file and directory operations, mathematical functions, and system calls. Notably, since version 0.25, enhancements have been made to functions like `poll()`, `clock_nanosleep()`, and `nanosleep()`, which now support better float detection and improved argument handling. This module is particularly useful for developers needing robust POSIX compliance in their Perl applications, while also providing additional functionality through its nonstandard extensions.

App-Greple-pw
Release | 25 Jul 2025 02:51 AM | Author: UTASHIRO | Version: 1.00
Module to get password from file
The `pw` module is a Perl extension designed to facilitate the retrieval of password and ID information from text files, enhancing security and usability during the process. It allows users to search for credentials interactively, with the added feature of masking passwords on display by default, while enabling clipboard copying through item marking. The module supports PGP-encrypted files and offers a streamlined experience by invoking GPG for decryption, allowing users to enter their passphrase only once for multiple files. Additionally, it includes functionality to handle random number matrices used by some banks as a security measure, ensuring that sensitive information is not exposed on the terminal. With customizable options for screen clearing and clipboard management, `pw` provides a robust solution for managing sensitive data securely. The module is part of the App::Greple suite, and its initial version was released on July 25, 2025.

Iterator-Flex
Release | 25 Jul 2025 01:21 AM | Author: DJERIUS | Version: 0.20
Iterators with flexible behaviors
Iterator::Flex is a Perl module designed to provide flexible and powerful iterator functionalities, allowing developers to create iterators that can rewind, reset, serialize, and signal exhaustion in various ways. This module supports optional behaviors such as maintaining state through cycles, providing history with previous and current values, and wrapping existing iterators to standardize their exhaustion interfaces. While it includes a set of common iterators for immediate use, it also offers comprehensive documentation for creating custom iterators. The latest version, 0.19, enhances the functionality of the `icat` method to accept a list of iterables instead of requiring an array reference, reflecting ongoing improvements to the module's usability and flexibility.

Geo-IPinfo
Release | 25 Jul 2025 01:16 AM | Author: IPINFO | Version: v3.1.1
Upvotes: 2 | CPAN Testers: Pass 100.0%
The official Perl library for IPinfo
Geo::IPinfo is the official Perl library for accessing IPinfo's extensive IP address data, providing reliable geolocation, company, carrier, and IP type information. With version 3.0.1, this module allows developers to create an IPinfo object using an access token for enhanced request limits and offers various methods to retrieve detailed information about both IPv4 and IPv6 addresses, including city, location coordinates, and organization details. Recent updates have improved the module's functionality, including the addition of caching capabilities and support for the Lite API, making it easier and more efficient to handle IP data requests. For more information, developers can refer to the comprehensive documentation available at the IPinfo developer site.

Dist-Zilla-Plugin-CodeOfConduct
Release | 24 Jul 2025 10:54 PM | Author: RRWO | Version: v0.1.0
Add a Code of Conduct to a distribution
Dist::Zilla::Plugin::CodeOfConduct is a Perl module designed to seamlessly integrate a Code of Conduct into your software distribution using the Software::Policy::CodeOfConduct framework. With configuration options that allow you to specify the project name, contact information, policy template, and output filename, this plugin ensures that your project adheres to community standards and fosters a welcoming environment for contributors. The initial release, version v0.1.0, was launched on July 24, 2025, marking the module's debut in the Perl ecosystem.

GD-Barcode
Release | 24 Jul 2025 09:50 PM | Author: MICHIELB | Version: 2.01
Upvotes: 3 | CPAN Testers: Pass 100.0%
Create barcode image with GD
GD::Barcode is a Perl module that enables the creation of barcode images using the GD graphics library. It supports various barcode formats, including EAN13 and UPCE, allowing users to generate barcode images directly in their applications. The module provides a straightforward interface for creating barcode objects and rendering them as PNG images, with options to customize the height and text display. Recent updates have improved documentation and fixed issues related to uninitialized values in QRcode generation, enhancing the module's reliability and usability. With its ability to function without the GD module for most operations, GD::Barcode is a versatile tool for developers needing barcode generation capabilities in their Perl applications.

Test2-Tools-TypeTiny
Favorite | 24 Jul 2025 09:31 PM | Author: GSG | Version: v0.93.1
Test2 tools for checking Type::Tiny types
The `Test2::Tools::TypeTiny` module provides a comprehensive suite of testing tools specifically designed for validating `Type::Tiny` types within the `Test2` framework. It enhances the testing process by allowing developers to create buffered subtests that check various aspects of type constraints, including coercion, error messages, and parameter validation. With functions like `should_pass_initially`, `should_fail`, and `should_coerce_into`, users can easily verify that their types behave as expected under different conditions. Notably, version v0.93.1 introduced improvements to the debugging output for failure messages and explanations, enhancing the clarity of diagnostics when type constraints are not met. This module is essential for developers looking to ensure robust type validation in their Perl applications.
Minimalistic SSH Certificate Authority
The `sshca` Perl module serves as a minimal SSH Certificate Authority, enabling users to issue and manage SSH certificates for both user and host authentication. With commands to initialize a certificate authority directory, issue new certificates, and renew existing ones, `sshca` enhances the functionality of traditional SSH public keys by allowing for more secure and manageable access control. Recent updates in version 0.0.4 addressed issues where certificate principles and options were previously discarded during issuance, and improved debugging output to ensure it does not interfere with certificate data. This module is particularly useful for those looking to implement short-lived SSH certificates for tighter security.

Text-Minify-XS
Release | 24 Jul 2025 05:52 PM | Author: RRWO | Version: v0.7.7
Remove indentation and trailing whitespace from multi-line text
Text::Minify::XS is a Perl module designed for efficiently cleaning up multi-line text by removing unnecessary indentation and trailing whitespace. It provides a straightforward function, `minify`, which processes input text in a single pass, collapsing multiple newlines and converting carriage returns to newlines without altering the content's structure. This module is particularly useful for developers looking to optimize text formatting for storage or transmission, as it does not recognize markup or comments, ensuring that significant newlines remain intact. Additionally, it offers specialized functions for handling ASCII text, which can enhance performance for 8-bit inputs. However, users should be cautious with malformed UTF-8 characters, as they may lead to exceptions or data loss.

Date-Holidays-BY
Release | 24 Jul 2025 05:04 PM | Author: BESINT | Version: 2.2026.0
Determine public holidays and business days in Belarus
Date::Holidays::BY is a Perl module designed to determine public holidays and business days in Belarus, providing a comprehensive overview of the holiday calendar, including national and religious observances. With functions to check if a specific date is a holiday or a business day, users can easily access holiday names and manage localization in Belarusian, English, and Russian based on the system's locale. Recent updates include the addition of exact holiday dates for 2026, enhancing the module's accuracy and usability for developers working with date-related functionalities in Belarus.

Astro-App-Satpass2
Release | 24 Jul 2025 12:36 PM | Author: WYANT | Version: 0.057
Predict satellite visibility using Astro::Coord::ECI
The `Astro::App::Satpass2` Perl module is designed for predicting satellite visibility and related phenomena, making it a powerful tool for astronomy enthusiasts and professionals alike. It allows users to set their geographical location, acquire satellite data from sources like Celestrak, and compute visible passes of satellites such as the International Space Station (ISS) over their specified location. The module can be utilized programmatically or through an interactive command-line interface, providing flexibility in how users engage with its features. Recent updates have improved error handling in the `height()` command and added testing to ensure reliability, reflecting the module's ongoing development and commitment to user experience.

GitHub-Config-SSH-UserData
Release | 24 Jul 2025 10:31 AM | Author: KLAUSRIN | Version: 0.01
Read user data from comments in ssh config file
The GitHub::Config::SSH::UserData Perl module provides a convenient way to extract user data from comments in an SSH configuration file, specifically tailored for users managing multiple GitHub accounts with different SSH keys. By utilizing the exported function `get_user_data_from_ssh_cfg()`, users can retrieve a structured hash reference containing essential information such as the user's full name and email addresses, based on the specified GitHub username. The module requires users to format their SSH config file with specific comment lines that include user details, allowing for easy identification and retrieval of this information. This functionality is particularly useful for developers who need to switch between multiple GitHub identities seamlessly.

Template-Nest
Release | 24 Jul 2025 10:23 AM | Author: TOMGRACEY | Version: 0.12
Upvotes: 1 | CPAN Testers: Pass 100.0%
Manipulate a generic template structure via a perl hash
Template::Nest is a Perl module designed for manipulating generic template structures using a simple hash-based approach, emphasizing a clear separation between control logic and presentation. Unlike many templating systems that embed processing within templates, Template::Nest treats templates as static text with placeholders, allowing for greater language independence and easier maintenance. This module enables developers to create modular templates that can be rendered with various data structures, making it suitable for generating HTML or other text formats. Notably, version 0.12 introduced a new option called `token_placeholder`, which allows developers to specify a placeholder string for any tokens that are not provided, enhancing the flexibility of template rendering. With features like preloading defaults, maintaining indentation in nested templates, and customizable token delimiters, Template::Nest offers a lightweight and efficient solution for template management in Perl applications.

App-freqtable
Release | 24 Jul 2025 06:44 AM | Author: PERLANCAR | Version: 0.009
CPAN Testers: Pass 100.0%
Print frequency table of lines/words/characters/bytes/numbers
App::freqtable is a Perl module designed to generate frequency tables for lines, words, characters, bytes, and numbers, making it a valuable tool for text analysis and data processing. With its command-line interface, users can easily access various options to customize their output, including the ability to print totals, sort results, and format percentages. The latest version, 0.009, released on July 24, 2025, introduces several new features such as options for printing totals and outputting results at specified intervals, alongside a bug fix for percent formatting. This module is particularly useful for developers and data analysts looking to gain insights from textual data efficiently. For more information, visit the project's homepage at MetaCPAN or its GitHub repository.

Data-Terminal-Scoring
Release | 24 Jul 2025 02:59 AM | Author: PYH | Version: 0.01
CPAN Testers: Pass 100.0%
Data::Terminal::Scoring - Distribution network terminal scoring module
Data::Terminal::Scoring is a Perl module designed for calculating scores in distribution network terminals based on various performance metrics. It allows users to evaluate terminal performance by considering factors such as service years, online rate, remote control failures, morning check failures, abnormal SOE signals, and device alarms. The module provides a straightforward interface with methods to create a scoring object and compute scores using specified parameters. This initial version, released on July 24, 2025, marks the module's debut, offering essential functionality for assessing terminal reliability and performance in network environments.

Devel-StackTrace
Favorite | 24 Jul 2025 12:57 AM | Author: DROLSKY | Version: 2.05
Upvotes: 28 | CPAN Testers: Pass 100.0%
An object representing a stack trace
The Devel::StackTrace module provides a robust way to capture and manipulate stack traces in Perl, encapsulating information typically retrieved via the caller function. It consists of two classes: Devel::StackTrace and Devel::StackTrace::Frame, allowing users to create stack trace objects that contain detailed information about each frame in the call stack. This module is particularly useful for debugging and error handling, as it enables developers to traverse the stack frames, filter them based on specific criteria, and format the output in a user-friendly manner. Recent updates in version 2.05 include the addition of explicit boolean overloading for trace objects, enhancing performance by reducing unnecessary overhead during truthiness checks, which can significantly speed up operations in certain contexts.

Crypt-Sodium-XS
Release | 23 Jul 2025 11:48 PM | Author: IAMB | Version: 0.000032
Perl XS bindings for libsodium
Crypt::Sodium::XS is a Perl module that provides XS bindings for the libsodium cryptographic library, enabling developers to perform a wide range of cryptographic operations, including authenticated symmetric and asymmetric encryption, password hashing, and key derivation. With a focus on ease of use and security, this module offers both procedural and object-oriented interfaces, allowing for flexible integration into Perl applications. It leverages libsodium's advanced memory handling features to protect sensitive data, making it suitable for tasks such as secure messaging and password management. While still in an experimental phase, Crypt::Sodium::XS aims to deliver a comprehensive interface to the powerful capabilities of libsodium, though users are advised to exercise caution in production environments due to potential bugs and evolving APIs.

Alien-gdal
Release | 23 Jul 2025 11:34 PM | Author: SLAFFAN | Version: 1.42
Alien package for the Geospatial Data Abstraction Library (GDAL)
The `Alien::gdal` Perl module provides a convenient way to compile and access the Geographic Data Abstraction Library (GDAL), which is essential for working with geospatial data. By using this module, developers can easily integrate GDAL into their Perl applications, allowing them to run GDAL utilities, manipulate geospatial data, and access GDAL's data directory. It simplifies the setup process by managing the installation and configuration of GDAL, making it easier for users to leverage its powerful capabilities in their projects. This module is particularly useful for those involved in geographic information systems (GIS) and related fields.

Mac-PropertyList
Release | 23 Jul 2025 11:11 PM | Author: BRIANDFOY | Version: 1.604
Work with Mac plists at a low level
The Mac::PropertyList module provides a low-level interface for working with Mac OS X Property List (plist) files, allowing users to parse, manipulate, and generate plist data in both XML and binary formats. It enables the conversion of plist files into Perl data structures and vice versa, facilitating the handling of complex data types such as dictionaries and arrays. While primarily designed for Mac OS X, the module can be utilized on other platforms as it focuses on the plist format itself. Users can create plist objects from hashes or arrays, read various data types, and convert plist data back into XML format. This module is particularly useful for developers looking to build higher-level interfaces or applications that require plist manipulation without delving into the intricacies of the plist structure.

Bio-MUST-Core
Release | 23 Jul 2025 10:03 PM | Author: DBAURAIN | Version: 0.252040
CPAN Testers: Pass 100.0%
Core classes and utilities for Bio::MUST
Bio::MUST::Core is a foundational module within the Bio::MUST collection, specifically designed for developing phylogenomic applications in Perl. It excels in seamlessly interfacing with the NCBI Taxonomy database, enabling users to automatically annotate ancestral nodes in phylogenetic trees. Unlike BioPerl, Bio::MUST modules rely on external libraries such as Bio::LITE::Taxonomy and Bio::Phylo for biological data manipulation. Although these modules have been in production since 2013, they are still evolving and lack comprehensive documentation, making them more suitable for adventurous users. Notably, the Bio::MUST::Core::Ali class is fully documented, providing a starting point for those interested in exploring this module's capabilities.

Role-Basic
Favorite | 23 Jul 2025 09:00 PM | Author: OVID | Version: 0.16
Upvotes: 8 | CPAN Testers: Pass 100.0%
Just roles. Nothing else
Role::Basic is a lightweight Perl module designed to provide a straightforward implementation of roles without the complexities associated with more extensive object systems like Moose or Mouse. It allows developers to define roles using a simple syntax, enabling the separation of class responsibilities and code reuse while maintaining safety and simplicity. With features such as method requirements and the ability to consume other roles, Role::Basic aims to be a subset of Moose::Role behavior, making it easier for users to transition to more complex systems if needed. The latest version, 0.16, includes a fix for metadata information and removes the dependency on Try::Tiny, ensuring a more streamlined experience for users.

Role-Tiny
Favorite | 23 Jul 2025 08:44 PM | Author: HAARG | Version: 2.002004
Upvotes: 72 | CPAN Testers: Pass 100.0%
Roles: a nouvelle cuisine portion size slice of Moose
Role::Tiny is a minimalist role composition module for Perl that provides a lightweight alternative to more complex role systems like Moose. It allows developers to define roles—essentially reusable sets of methods—that can be composed into classes, enabling a form of multiple inheritance that prioritizes class-defined methods over role methods. With features such as method modifiers (before, after, around), required methods, and the ability to check if a class has a specific role, Role::Tiny simplifies the process of creating flexible and maintainable code. Recent updates have restored the requirement for a base class when using the `create_class_with_roles` function, enhancing compatibility and functionality. This module is particularly useful for developers looking to implement role-based programming without the overhead of more extensive frameworks.