CPANscan logo

CPANscan

Recent Perl modules, releases and favorites.
Last updated 18 November 2025 04:30 AM
Perl logo

Date-Age

Release | 18 Nov 2025 02:38 AM | Author: NHORNE | Version: 0.04
CPAN Testers: Pass 100.0%
Calculate precise or range-based age from dates
Date::Age is a Perl module designed to calculate the age or age range based on given birth dates and reference dates, such as the current date or a death date. It can handle both complete and partial dates, making it versatile for various applications. The module provides two primary functions: `describe`, which returns a concise age range as a string, and `details`, which offers a more comprehensive hash reference containing minimum and maximum ages, as well as a precise age. The latest version, 0.04, introduced several enhancements, including the addition of a command-line utility (`bin/date-age`), improved leap year logic, and performance optimizations by switching from Time::Piece to Time::Local. This module is particularly useful for applications requiring age calculations in a straightforward and efficient manner.
Perl logo

Test-Simple

Favorite | 17 Nov 2025 10:38 PM | Author: EXODIST | Version: 1.302216
Upvotes: 199 | CPAN Testers: Pass 99.6%Fail 0.4%
Basic utilities for writing tests
Test::Simple is a foundational Perl module designed to facilitate the creation of basic tests for Perl applications and CPAN modules. It provides a straightforward interface for writing tests, primarily using the `ok()` function to assert conditions, which outputs "ok" or "not ok" based on the test results. Users must declare the number of tests they plan to run, ensuring that the testing framework can handle unexpected failures gracefully. While Test::Simple is ideal for simple testing scenarios, it serves as a stepping stone to the more advanced Test::More module, which offers additional testing functionalities. Recent updates have included minor documentation fixes and enhancements to improve compatibility and usability, ensuring that Test::Simple remains a reliable choice for developers looking to implement testing in their Perl projects.
Perl logo

signatures

Favorite | 17 Nov 2025 06:46 PM | Author: ETHER | Version: 0.14
Upvotes: 8 | CPAN Testers: Pass 98.1%Fail 1.9%
Subroutine signatures with no source filter
The `signatures` Perl module provides a straightforward way to define subroutine signatures without the need for a source filter, allowing for cleaner and more readable code. By using this module, developers can specify parameters directly in the subroutine declaration, which are then automatically assigned to lexical variables at compile time. This simplifies the process of handling subroutine arguments, as it eliminates the need for manual extraction from the `@_` array. Notably, version 0.14 introduced a fix to properly clear `PL_lex_stuff`, enhancing the module's stability and performance. This module is particularly useful for those looking to streamline their Perl code while maintaining clarity and functionality.
Perl logo

Crypt-SecretBuffer

Release | 17 Nov 2025 05:30 PM | Author: NERDVANA | Version: 0.008
Upvotes: 2 | CPAN Testers: Pass 89.0%Fail 2.1%Unknown 8.9%
Prevent accidentally copying a string of sensitive data
Crypt::SecretBuffer is a Perl module designed to securely handle sensitive data, such as passwords, by preventing accidental exposure or copying in memory. It provides a robust interface for managing secret values, ensuring that they are wiped from memory when no longer needed, thus mitigating risks associated with memory leaks in long-running applications. The module allows for secure input via console without echoing characters, and it can interact with external commands without exposing secrets in Perl's memory. Recent updates in version 0.008 introduced new methods for parsing secrets, including 'rindex' and 'scan', as well as file handling capabilities with 'load_file' and 'save_file', enhancing its utility for developers needing to manage sensitive information securely.
Perl logo

JSON-Schema-Modern

Favorite | 17 Nov 2025 04:59 PM | Author: ETHER | Version: 0.623
Upvotes: 7 | CPAN Testers: Pass 95.6%Fail 4.4%
Validate data against a schema using a JSON Schema
The `JSON::Schema::Modern` Perl module provides a robust and compliant way to validate JSON data against specified schemas, adhering to the latest JSON Schema Draft 2020-12 standards. It allows developers to create schema evaluators with customizable options such as output format, validation depth, and format assertions. The module supports various schema versions and includes features like early evaluation termination, format validation, and the ability to handle complex schemas with nested references. Recent updates have improved error handling and performance, including fixes for dynamic references and better management of schema identifiers. This makes `JSON::Schema::Modern` an essential tool for developers looking to ensure data integrity in JSON applications.
Perl logo

OpenAPI-Modern

Favorite | 17 Nov 2025 04:49 PM | Author: ETHER | Version: 0.105
Upvotes: 3 | CPAN Testers: Pass 100.0%
Validate HTTP requests and responses against an OpenAPI v3.1 or v3.2 document
OpenAPI::Modern is a Perl module designed to validate HTTP requests and responses against OpenAPI v3.1 and v3.2 specifications, ensuring compliance with defined API contracts. It provides a robust framework for developers to create and manage OpenAPI documents, allowing for the validation of various request and response formats using Mojolicious message objects. The module supports features such as URI resolution, path item lookups, and detailed error reporting, making it easier to maintain API integrity. Notably, version 0.105 introduced improved specification compliance for matching URIs to path patterns and server URL patterns, enhancing the module's reliability in real-world applications.
Perl logo

Params-Validate-Strict

Release | 17 Nov 2025 01:56 PM | Author: NHORNE | Version: 0.24
Upvotes: 1 | CPAN Testers: Pass 99.4%Fail 0.6%
Validates a set of parameters against a schema
Params::Validate::Strict is a Perl module designed for robust parameter validation against a defined schema, ensuring that input data adheres to specified types and constraints. It allows developers to define complex validation rules for various data types, including strings, integers, and nested structures, while also supporting features like custom types, transformations, and cross-field validations. This module is particularly useful for applications requiring strict input validation, such as web application firewalls and automated testing frameworks. Notably, version 0.24 introduced a renaming of the `error_message` field to `error_msg` for consistency with related modules, along with the addition of a `description` field to enhance schema clarity.
Perl logo

XML-Feed

Release | 17 Nov 2025 10:39 AM | Author: DAVECROSS | Version: v1.0.0
Upvotes: 11 | CPAN Testers: Pass 99.6%N/A 0.4%
XML Syndication Feed Support
*XML::Feed* is a versatile Perl module designed for parsing syndication feeds, specifically supporting both RSS and Atom formats. It provides a unified API that simplifies the handling of various feed formats, addressing differences in data representation such as date handling and content formatting. Users can easily parse feeds from different sources, including URIs and file handles, and can also utilize its auto-discovery feature to find feeds linked on web pages. Recent updates in version 1.0.0 have introduced enhancements to the constructors, allowing them to accept a user agent argument, which improves the module's ability to fetch feeds effectively. This makes *XML::Feed* an essential tool for developers working with web syndication technologies.
Perl logo

Mac-OSVersion

Release | 17 Nov 2025 07:36 AM | Author: BRIANDFOY | Version: 1.018
Upvotes: 3 | CPAN Testers: Pass 1.6%N/A 98.4%
Get the Mac OS X or macOS system version
The Mac::OSVersion Perl module provides a straightforward way to retrieve and manipulate the version information of macOS or Mac OS X systems. It allows users to obtain the full version number, including major, minor, and point releases, as well as the system name and kernel version through various methods. With capabilities to return this information in both scalar and list contexts, the module supports multiple methods for data collection, such as using system commands like `sw_vers` and `system_profiler`, or through the `Mac::Gestalt` module. This makes it a versatile tool for developers needing to programmatically access macOS version details on the current machine.
Perl logo

JSON-Schema-Validate

Release | 17 Nov 2025 01:09 AM | Author: JDEGUEST | Version: v0.4.0
Upvotes: 1 | CPAN Testers: Pass 21.4%Fail 74.8%N/A 3.8%
Lean, recursion-safe JSON Schema validator (Draft 2020-12)
The `JSON::Schema::Validate` module is a lightweight and recursion-safe validator for JSON Schema, specifically designed to comply with the Draft 2020-12 specification. It allows developers to define schemas for JSON data structures and validate instances against these schemas, ensuring data integrity and correctness. The module supports a wide range of JSON Schema features, including types, enumerations, and various validation keywords, while also providing built-in format validators for common data types like email and URIs. Recent updates in version 0.4.0 introduced optional pruning capabilities, allowing unknown properties in JSON instances to be removed before validation, which is particularly useful for REST APIs. This module is ideal for developers looking for a minimal yet effective solution for JSON validation in Perl applications.
Perl logo

Chess-Plisco

Favorite | 16 Nov 2025 06:40 PM | Author: GUIDO | Version: v0.8.0
Upvotes: 1 | CPAN Testers: Pass 98.7%Fail 0.8%N/A 0.5%
Representation of a chess position with move generator, legality checker etc
Chess::Plisco is a powerful and efficient chess library for Perl designed to facilitate chess programming with a focus on performance. It utilizes advanced techniques such as bitboards for board representation and magic bitboards for generating sliding piece moves, enabling rapid move generation and legality checks. The library supports various notations, including Standard-Algebraic Notation (SAN) and Forsyth-Edwards Notation (FEN), allowing for easy position manipulation and analysis. With features like pseudo-legal move generation, static exchange evaluation, and Zobrist keys for position hashing, Chess::Plisco is ideal for developers looking to implement chess engines or applications that require robust chess logic. Its performance is notably superior to similar libraries, making it a top choice for serious chess programming in Perl.
Perl logo

Daje-Document-Builder

Release | 16 Nov 2025 12:07 PM | Author: JANESKIL | Version: 0.01
It's new $module
Daje::Document::Builder is a Perl module designed to facilitate the creation and manipulation of documents within the Daje framework. It provides a straightforward interface for developers to build structured documents programmatically, enhancing productivity and code maintainability. Released on November 16, 2025, this initial version marks the module's debut, offering essential functionalities for document handling in Perl applications. As an open-source library, it is freely available for redistribution and modification under the same terms as Perl itself, making it a valuable tool for developers looking to streamline their document processing tasks.
Perl logo

CPANSA-DB

Release | 16 Nov 2025 06:08 AM | Author: BRIANDFOY | Version: 20251116.001
Upvotes: 4 | CPAN Testers: Pass 91.2%N/A 8.8%
The CPAN Security Advisory data as a Perl data structure, mostly for CPAN::Audit
The CPANSA::DB module provides a Perl data structure containing the CPAN Security Advisory (CPANSA) reports, primarily intended for use with the CPAN::Audit module. By calling the `db` subroutine, users can access a hash reference of all CPANSA reports, which are crucial for ensuring the integrity and security of Perl modules. Each release of this module is accompanied by a GPG signature for verification, and it is also available on GitHub, where users can authenticate the integrity of the downloaded files using GitHub Attestations. This module is essential for developers looking to maintain secure Perl environments by auditing potential vulnerabilities in CPAN modules.
Perl logo

Daje-Tools-Datasections

Release | 16 Nov 2025 04:58 AM | Author: JANESKIL | Version: 1.00
Load and store data sections in memory from a named *.pm
Daje::Tools::Datasections is a Perl module designed to facilitate the loading and storage of data sections from specified Perl classes into memory. It allows users to easily retrieve specific sections of data using the `get_data_section` method, add new data sections with `set_data_section`, and manage data sources through `set_source`. Additionally, users can specify which sections to load by utilizing the `add_data_section` method. This module is particularly useful for applications that require organized access to structured data within Perl modules, streamlining the process of data management in a clean and efficient manner.
Perl logo

Data-TOON

Release | 16 Nov 2025 03:27 AM | Author: YTURTLE | Version: 0.01
CPAN Testers: Pass 97.0%N/A 3.0%
Complete Perl implementation of TOON (Token-Oriented Object Notation)
Data::TOON is a Perl module that provides a complete implementation of the Token-Oriented Object Notation (TOON), a human-friendly, line-oriented data serialization format. Designed for ease of use, it allows developers to encode and decode Perl data structures into a readable format that resembles YAML, featuring minimal quoting and indentation-based syntax. Data::TOON supports various array formats, flexible delimiters (such as commas, tabs, and pipes), and includes security features like depth limits and circular reference detection to prevent potential vulnerabilities. This module is particularly useful for configuration files, data interchange, and any scenario where human-editable data storage is required, achieving over 95% compliance with the TOON specification.
Perl logo

TableDataBundle-Lingua-Word-EN-ByClass-Adverb

Release | 16 Nov 2025 12:05 AM | Author: PERLANCAR | Version: 0.003
CPAN Testers: Pass 100.0%
Collection of TableData:: modules that contain English adverbs
The `TableDataBundle::Lingua::Word::EN::ByClass::Adverb` module is a Perl distribution designed to provide a collection of English adverbs organized by class, specifically tailored for use with the TableData framework. Currently at version 0.003, it includes modules such as `TableData::Lingua::Word::EN::ByClass::Adverb::TalkEnglish`, facilitating easy access and manipulation of adverb data for developers working with linguistic applications. This module is part of a broader suite that also encompasses nouns and adjectives, making it a valuable resource for anyone looking to enhance their text processing or natural language processing projects in Perl. For more information, users can visit the project's homepage or access the source repository on GitHub.
Perl logo

Syntax-Keyword-Wielding

Release | 15 Nov 2025 08:05 PM | Author: TOBYINK | Version: 0.001000
CPAN Testers: Pass 93.6%Fail 4.7%Unknown 1.7%
Adds a `wielding` keyword to make it easier to call the same function or method multiple times
The `Syntax::Keyword::Wielding` Perl module introduces a new "wielding" keyword that simplifies the process of calling the same function or method multiple times within a block. By using the underscore (`_`) as a shorthand for the specified method or function, developers can reduce repetitive code and enhance readability. This module supports various calling styles, including simple and curried method calls, fully-qualified function calls, and code references. It allows for cleaner syntax when adding multiple lines to a play, for example, making it easier to manage complex data structures. The module was initially released on November 15, 2025, and aims to streamline function calls in Perl scripts, making code more concise and maintainable.
Perl logo

Travel-Status-DE-DBRIS

Release | 15 Nov 2025 05:38 PM | Author: DERF | Version: 0.16
CPAN Testers: Pass 4.0%N/A 30.7%Unknown 65.3%
Interface to bahn.de / bahnhof.de departure monitors
Travel::Status::DE::DBRIS is a Perl module that provides an unofficial interface to the bahn.de and bahnhof.de departure monitors, allowing users to retrieve real-time train departure information from German railway stations. It supports both blocking and non-blocking requests, enabling developers to easily integrate train status updates into their applications. Users can query for departures by station, search for nearby stations based on geographic coordinates, or obtain detailed journey information and carriage formations. The module also includes caching options to optimize performance and reduce the risk of hitting rate limits during requests. Notably, version 0.16 introduced enhancements to the carriage formation detection, improving the accuracy of train type identification.
Perl logo

Alien-libsecp256k1

Release | 15 Nov 2025 02:34 PM | Author: BRTASTIC | Version: 0.060001
CPAN Testers: Pass 93.8%N/A 0.6%Unknown 5.6%
Perl builder for libsecp256k1
The `Alien::libsecp256k1` Perl module serves as a builder for the libsecp256k1 library, which is essential for cryptographic operations in applications like Bitcoin. It automatically detects the presence of this library on the system and facilitates its installation for other CPAN modules that depend on it. The module currently installs version "v0.6.0" of libsecp256k1, with plans for future updates as new versions are released. It includes the library bundled within the module, ensuring that the integrity of the library's release is verified prior to distribution. By default, the module skips extensive testing of libsecp256k1 to streamline the installation process, but users can enable these tests by setting an environmental variable during installation.
Perl logo

App-Netdisco

Release | 15 Nov 2025 12:44 PM | Author: OLIVER | Version: 2.095000
Upvotes: 18 | CPAN Testers
An open source web-based network management tool
App::Netdisco is an open-source, web-based network management tool tailored for network administrators, enabling efficient management and monitoring of network devices. It utilizes SNMP to gather data, which is stored in a PostgreSQL database, allowing users to locate devices by MAC or IP address, manage switch ports (including turning them off or changing VLAN settings), and maintain an inventory of network hardware. The application features a user-friendly web interface with a built-in server and a backend daemon for real-time data collection and interactive requests. Recent updates include Docker Compose support for PostgreSQL upgrades and enhancements to device discovery and reporting functionalities, making it a robust solution for modern network management needs.
Perl logo

App-FeedDeduplicator

Release | 15 Nov 2025 08:27 AM | Author: DAVECROSS | Version: v0.4.0
CPAN Testers: Pass 15.5%N/A 84.5%
A simple feed deduplicator
App::FeedDeduplicator is a Perl module designed to simplify the process of aggregating, deduplicating, and publishing feeds. Utilizing LWP::UserAgent for fetching feeds and XML::Feed for parsing, it identifies unique entries based on their identifiers, canonical links, or titles. The module can output deduplicated feeds in either Atom or JSON format and is configurable via a JSON file that specifies the feeds to aggregate, the desired output format, and the maximum number of entries. It is intended for command-line use and is built to be extensible for future enhancements. Notably, version 0.4.0, released on November 15, 2025, addressed several bugs related to entry titles and deduplication logic, improving the overall functionality of the application.
Perl logo

Business-ISBN-Data

Release | 15 Nov 2025 07:31 AM | Author: BRIANDFOY | Version: 20251115.001
Upvotes: 3 | CPAN Testers: Pass 100.0%
Data pack for Business::ISBN
The `Business::ISBN::Data` module serves as a data pack for the `Business::ISBN` module, providing essential data derived from the ISBN Agency's `RangeMessage.xml` file. Typically, users do not need to load this module directly, as it is automatically loaded by `Business::ISBN` when required. It is crucial to use version 3.005 or later of `Business::ISBN` due to structural changes addressing ISBN-13 prefixes. The module allows for flexibility in data sourcing by enabling users to specify an alternative `RangeMessage.xml` file through the `ISBN_RANGE_MESSAGE` environment variable, ensuring access to the most current or historical data without needing to update the module itself. If the specified data file is unavailable, it defaults to older data included within the module. The data is organized in the `%Business::ISBN::country_data` hash, which provides insights into the source of the data. This module is particularly useful for developers working with ISBN data in Perl applications, ensuring they have access to accurate and up-to-date information.
Perl logo

Term-ANSIEncode

Release | 15 Nov 2025 03:54 AM | Author: RKELSCH | Version: 1.46
CPAN Testers: Pass 89.3%N/A 10.7%
Markup Language for ANSI Encoding
Term::ANSIEncode is a Perl module designed to facilitate the generation of ANSI-encoded text for terminal output, allowing developers to create visually engaging command-line interfaces. By utilizing a markup language, it enables the inclusion of various text formatting options such as cursor movement, screen clearing, and text attributes like bold, italic, and underlined styles. The module supports a wide range of colors for both foreground and background, accommodating terminals that support UTF-8 and advanced color features. With its straightforward syntax, Term::ANSIEncode empowers users to enhance their terminal applications with rich text presentations, making it an essential tool for Perl developers focused on terminal aesthetics and functionality.
Perl logo

StreamFinder

Release | 15 Nov 2025 02:52 AM | Author: TURNERJW | Version: 2.46
Upvotes: 7 | CPAN Testers: Pass 100.0%
Fetch actual raw streamable URLs from various radio-station, video & podcast websites
StreamFinder is a versatile Perl module designed to extract raw streamable URLs from various media sources, including radio stations, video platforms, and podcasts. By accepting a webpage URL from supported sites, it retrieves the actual stream URLs, along with metadata such as titles, descriptions, and cover art icons, allowing users to bypass the clutter of web browsers and enjoy content in their preferred media players. StreamFinder supports a wide range of platforms, including Apple Podcasts, YouTube, and SoundCloud, and offers various options for customization, such as limiting stream types and logging activity. Notably, recent updates have improved the handling of HLS streams and added support for new platforms like EpochTV and Zeno.fm, while also marking some older modules as deprecated due to changes in their respective sites. This module is particularly useful for developers looking to integrate streaming capabilities into their Perl applications.
Perl logo

Dump-Krumo

Release | 14 Nov 2025 11:16 PM | Author: BAKERSCOT | Version: v0.1.2
CPAN Testers: Pass 95.3%Fail 0.4%N/A 4.4%
Fancy, colorful, human readable dumps of your data
Dump::Krumo is a Perl module designed to enhance the debugging experience by providing colorful, human-readable representations of data structures. By using the `kx` and `kxd` methods, developers can easily visualize complex variables, with `kxd` also including file and line information for better context during debugging. The module offers customizable options such as enabling or disabling color output, returning strings instead of printing directly, adjusting indentation levels, and even disabling all output at runtime, allowing for flexible debugging without cluttering the code. Ideal for developers seeking clarity in their data dumps, Dump::Krumo makes it easier to parse and understand variable contents at a glance.
Perl logo

Types-Capabilities

Release | 14 Nov 2025 10:13 PM | Author: TOBYINK | Version: 0.001000
CPAN Testers: Pass 99.5%Unknown 0.5%
Don't care what type of data you are given, just what you can do with it
The `Types::Capabilities` Perl module provides a flexible way to define type constraints based on the capabilities of objects rather than their specific types. This allows developers to create APIs that accept a variety of data structures, as long as they support certain methods, such as "grep," "map," or "sort." For instance, in the provided example, a `LineFilter` class uses the `Greppable` type constraint to ensure that any input object has a "grep" method, enabling it to filter lines based on a regular expression. The module also supports coercion, allowing array references or array-like objects to be automatically converted into objects that meet the required capabilities, making it easier to work with diverse data types in a consistent manner.
Perl logo

Test2-Tools-PerlTidy

Release | 14 Nov 2025 09:34 PM | Author: PLICEASE | Version: 0.01
CPAN Testers: Pass 99.5%Fail 0.5%
Test2 check that all of your Perl files are tidy
Test2::Tools::PerlTidy is a Perl module designed to ensure that your Perl files adhere to tidy coding standards, serving as a drop-in replacement for Test::PerlTidy but utilizing the Test2::API for enhanced functionality. With features like customizable exclusion criteria for files, the ability to specify a perltidyrc configuration file, and options for silent diagnostics or returning detailed diff objects, this module streamlines the process of maintaining code quality. It automatically searches for Perl files in the current directory and can be configured to skip certain tests or modify its output behavior. The initial version, released on November 14, 2025, marks the module's debut in the Perl ecosystem.
Perl logo

Term-Table

Release | 14 Nov 2025 06:05 PM | Author: EXODIST | Version: 0.027
Upvotes: 2 | CPAN Testers: Pass 98.6%Fail 1.4%
Format a header and rows into a table
The Term::Table Perl module is designed to format and display data in a structured table format, making it easier to visualize and interpret information. It allows users to define headers and rows of data, with customizable options such as maximum width, padding, and the ability to collapse empty columns. The module also includes features for sanitizing data to prevent formatting issues caused by control characters and whitespace, as well as options to control the visibility of headers and the handling of overflow. Ideal for generating clear and organized output in terminal applications, Term::Table enhances the presentation of tabular data in Perl scripts.
Perl logo

XS-Parse-Sublike

Release | 14 Nov 2025 05:47 PM | Author: PEVANS | Version: 0.40
Upvotes: 7 | CPAN Testers: Pass 82.7%Fail 7.2%N/A 6.4%Unknown 3.6%
XS functions to assist in parsing sub-like syntax
The "XS::Parse::Sublike" Perl module provides a set of XS functions designed to facilitate the parsing of "sub"-like syntax, primarily aimed at developers creating keyword plugins that utilize the "PL_keyword_plugin" hook mechanism. This module is particularly useful for those writing parsers in XS, as it offers functions to handle various stages of parsing, including the initialization of hooks, parsing of attributes, signatures, and the function body. Notably, recent updates have introduced experimental support for refalias syntax in extended signatures, enhancing its capabilities for handling complex parameter structures. However, it is important to note that this module is still experimental, and its design may evolve, potentially breaking ABI compatibility in future versions.
Perl logo

MARC-Leader

Release | 14 Nov 2025 04:03 PM | Author: SKIM | Version: 0.07
CPAN Testers: Pass 100.0%
MARC leader class
The `MARC::Leader` Perl module provides a robust interface for handling MARC (Machine-Readable Cataloging) leader strings, which are essential components in bibliographic records. This module allows users to create an instance of a MARC leader object, parse a MARC leader string into a structured object, and serialize that object back into a string format. With methods for initialization, parsing, and serialization, it simplifies the manipulation of MARC leader data. Notably, version 0.06 introduced a 'verbose' parameter for enhanced output during operations, improved error reporting by including the length of the leader in error messages, and added the capability to store the raw leader string within the object. This makes `MARC::Leader` a valuable tool for developers working with bibliographic data in Perl.