Recent Perl modules, releases and favorites.
Last updated 12 March 2025 08:30 PM
Last updated 12 March 2025 08:30 PM
Encode / decode geohash.org locations
Geo::Hash is a Perl module designed for encoding and decoding geographic locations using the geohash system, which is a method for representing latitude and longitude coordinates as a compact string. Created by Gustavo Niemeyer, this module allows users to easily convert latitude and longitude pairs into geohashes and vice versa, facilitating geographic data handling in applications. It includes features for inferring the precision of the geohash based on the provided coordinates and offers an option to decode geohashes into coordinate intervals, providing insight into the precision of the original location. With no dependencies or configuration requirements, Geo::Hash is a straightforward tool for developers working with geographic data.

Math-Symbolic-Custom-Matrix
Release | 12 Mar 2025 10:37 AM | Author: MJOHNSON | Version: 0.21
Matrix routines for Math::Symbolic
Math::Symbolic::Custom::Matrix is a Perl module designed to facilitate the manipulation of matrices composed of Math::Symbolic expressions, effectively treating matrices as 2D arrays of symbolic elements. This module provides a variety of functions for creating, adding, subtracting, multiplying, and performing other operations on symbolic matrices, including generating identity matrices, calculating determinants, and simplifying matrix elements. Notably, version 0.21 introduced updated examples to enhance usability, while earlier updates added essential functions such as scalar division and matrix implementation, making it a robust tool for users working with symbolic mathematics in Perl.
A Perl graphic toolkit
Prima is a versatile Perl graphic toolkit designed for creating 2D graphical user interfaces (GUIs) across Windows and X11 environments. It offers a comprehensive library of widgets, extensive support for 2D graphics, and capabilities for PDF generation, making it suitable for a wide range of applications. With features like modern Unicode text handling and support for various image formats, Prima allows developers to build rich, interactive applications efficiently. The toolkit includes a Rapid Application Development (RAD) style Visual Builder and can seamlessly integrate with other event loop libraries, enhancing its usability for Perl programmers looking to create visually appealing and functional GUI applications.

Tripletail
Release | 12 Mar 2025 08:27 AM | Author: MIKAGE | Version: 0.68
Tripletail, Framework for Japanese Web Application
Tripletail is a comprehensive framework designed for developing Japanese web applications using Perl. It provides a robust set of features, including CGI handling, template management, and database interaction, making it suitable for building dynamic web applications. The framework allows developers to easily manage configurations through INI files, handle sessions, and utilize various filters for input and output processing. Recent updates have improved compatibility with MariaDB and enhanced the functionality of the TL::Pager module, ensuring better performance and reliability. With its focus on Japanese language support and web standards, Tripletail is an excellent choice for developers looking to create localized web applications efficiently.

namespace-autoclean
Favorite | 12 Mar 2025 05:48 AM | Author: ETHER | Version: 0.31
Keep imports out of your namespace
The `namespace::autoclean` Perl module is designed to help developers maintain a clean namespace by automatically removing imported functions from a package's namespace at the end of its compile cycle. This ensures that while the functions remain callable within the package, they do not appear as methods on the class or its instances, preventing potential conflicts and confusion. Unlike similar modules, `namespace::autoclean` cleans all imported symbols regardless of when they were imported, while preserving methods defined within the package. It also offers flexibility through options like `-also` and `-except`, allowing users to specify additional functions to clean or exclude from cleaning. This module is particularly useful for those writing exporters or working with Moose and Moo classes, ensuring that the intended methods remain accessible while keeping the namespace tidy.

Crypt-SMIME
Release | 12 Mar 2025 04:26 AM | Author: MIKAGE | Version: 0.31
S/MIME message signing, verification, encryption and decryption
Crypt::SMIME is a Perl module designed for handling S/MIME messages, enabling functionalities such as signing, verifying, encrypting, and decrypting MIME messages. It requires the OpenSSL library and provides a straightforward interface for managing private and public keys, as well as processing S/MIME formatted messages. Users can create instances of the Crypt::SMIME class, set their keys, and utilize methods to sign or encrypt messages, ensuring secure communication. Recent updates include a fix for compatibility with ExtUtils-ParseXS versions greater than 3.51, enhancing the module's stability and usability in various environments.
File IO, Sockets, Select/Polling
The SPVM::IO module provides a comprehensive set of classes for handling file input/output, socket communication, and event polling in Perl. It includes essential components such as IO::Handle for managing file handles, IO::File for file operations, and various IO::Socket classes for different socket types (INET, UNIX, etc.), enabling developers to create robust network applications. The module also features methods for opening files and directories, as well as for performing select and poll operations, making it a versatile tool for both file manipulation and network programming. With its focus on ease of use and integration with SPVM, SPVM::IO is an invaluable resource for developers looking to streamline their I/O operations in Perl.

Net-Whois-IANA
Release | 11 Mar 2025 11:45 PM | Author: ATOOMIC | Version: 0.50
Net::Whois::IANA - A universal WHOIS data extractor
Net::Whois::IANA is a Perl module designed to extract WHOIS information for IP addresses from the four regional WHOIS registries managed by IANA: RIPE, APNIC, ARIN, and AFRINIC. This object-oriented module allows users to perform queries on specified IPs, retrieving key details such as country, netname, description, status, and CIDR notation. It features robust error handling and supports querying specific WHOIS servers, making it particularly useful for statistical analysis of access logs. The module operates in a round-robin fashion across registries until valid data is found, and it is intended for general use where precise information is not critical.
Mail Analyzing Interface for bounce mails
Sisimai is a powerful Perl library designed for analyzing bounce emails, providing a structured way to decode complex delivery failure messages. It extracts essential information such as the recipient's email address, the reason for the bounce, and the delivery status, outputting the results in a Perl hash reference or JSON format. The library supports various methods for processing bounce emails, including reading from mbox or Maildir formats, and it features a callback mechanism for custom processing. Notably, recent updates in version 5.2.1 include bug fixes for the `find()` method and the implementation of a new module for handling Cloudflare bounce messages, enhancing its robustness and compatibility with modern email systems.

Image-Libpuzzle
Favorite | 11 Mar 2025 10:02 PM | Author: ESTRABD | Version: 0.07
Perl interface to libpuzzle
The `Image::Libpuzzle` module provides a Perl interface to the libpuzzle library, enabling users to perform advanced image comparison and signature generation. This module allows for the extraction of image signatures from files, which can then be manipulated and compared using various parameters such as lambda values and p ratios to fine-tune the similarity assessments. With methods for generating string representations of signatures and calculating distances between images, `Image::Libpuzzle` is particularly useful for applications that require fuzzy image matching or the analysis of large image datasets. It also includes pure Perl helper methods to facilitate easier integration and usage, making it a valuable tool for developers working with image processing in Perl.

Dist-Build
Release | 11 Mar 2025 08:54 PM | Author: LEONT | Version: 0.017
A modern module builder, author tools not included!
Dist::Build is a modern Perl module builder designed to facilitate the creation and management of Perl distributions with enhanced extensibility and customization options. Unlike its predecessors, it employs an internal build graph that simplifies the integration of various customizations through the addition of ".pl" scripts in a "planner/" directory. This module supports a range of plugins, such as Dist::Build::XS for compiling XS modules and Dist::Build::ShareDir for managing shared directories, allowing developers to easily extend its functionality. With built-in delegates for managing metadata and configuration, Dist::Build streamlines the process of building and distributing Perl modules, making it a valuable tool for developers seeking a flexible and modern approach to module creation.

Image-PHash
Favorite | 11 Mar 2025 04:38 PM | Author: DKECHAG | Version: 0.3
Fast perceptual image hashing (DCT-based pHash)
Image::PHash is a Perl module designed for fast perceptual image hashing using a DCT-based algorithm, enabling efficient image comparison and similarity detection. It allows users to load images, resize them, and compute perceptual hashes (pHashes) with various configurations, including options for reduced hashes and different methods for generating bitmasks. The module is built on a fast DCT implementation, making it significantly quicker than previous versions and alternatives, achieving over 18,000 hashes per second on certain setups. Recent updates in version 0.3 have introduced support for loading image objects and improved performance by preferring the Imager library over ImageMagick, enhancing usability and efficiency for developers working with image data.

AtteanX-Store-DBI
Release | 11 Mar 2025 04:24 PM | Author: GWILLIAMS | Version: 0.003
Database quad-store
AtteanX::Store::DBI is a Perl module that implements a quad-store backed by a relational database, allowing users to manage and query RDF data efficiently. By utilizing a database handle, it provides methods for adding, removing, and retrieving quads, as well as counting and managing graphs within the store. The module supports transactions and bulk updates, ensuring data integrity during operations. Additionally, it offers functionality to initialize the database schema, create temporary in-memory stores, and retrieve database connection parameters, making it a versatile choice for developers working with RDF data in various database environments.

Math-Symbolic-Custom-Equation
Release | 11 Mar 2025 03:00 PM | Author: MJOHNSON | Version: 0.2
Work with equations of Math::Symbolic expressions
The `Math::Symbolic::Custom::Equation` Perl module provides a robust framework for working with equations composed of `Math::Symbolic` expressions. With this module, users can create equations, isolate variables, perform arithmetic operations, and simplify expressions. It allows for the manipulation of equations in various ways, such as adding, subtracting, multiplying, and dividing both sides of an equation, as well as checking if specific values satisfy the equation. Notably, version 0.2 introduced the `implement()` method for variable substitution and enhanced the `add()` and `subtract()` methods to support operations with entire equations, alongside significant improvements to the `isolate()` method. This makes it an essential tool for anyone needing to solve or manipulate mathematical equations programmatically in Perl.

EBook-Ishmael
Release | 11 Mar 2025 02:21 PM | Author: SAMYOUNG | Version: 1.01
EBook dumper
EBook::Ishmael is a versatile Perl module designed for dumping and processing various ebook formats. It serves as the core component of the ishmael project, allowing users to extract text, metadata, and images from ebooks in multiple formats, including EPUB, MOBI, and CHM. With methods for outputting content in plain text, JSON, XML, and even HTML, EBook::Ishmael caters to a wide range of user needs. Recent updates in version 1.00 have significantly expanded its capabilities, introducing support for additional ebook formats, enhanced metadata dumping options, and the ability to extract images directly to specified directories. This makes EBook::Ishmael an essential tool for developers and users looking to manipulate and analyze ebook content efficiently.

EBook-Gutenberg
Release | 11 Mar 2025 02:05 PM | Author: SAMYOUNG | Version: 0.01
Fetch ebooks from Project Gutenberg
EBook::Gutenberg is a Perl module designed to facilitate the fetching of ebooks from Project Gutenberg, providing essential functionalities for users to interact with the Gutenberg library. With methods to initialize the module, run ebook retrieval processes, update local catalogs, search for specific titles, download ebooks, and display metadata, it serves as a comprehensive tool for ebook enthusiasts and developers alike. The module is straightforward to use, requiring only the initialization of an object followed by execution of commands to perform various tasks. Initially released in March 2025, EBook::Gutenberg is actively maintained, welcoming contributions from the community to enhance its capabilities.
General purpose path languages for trees
TPath is a versatile Perl module that provides a powerful, XPath-like language for navigating and querying tree structures. By implementing just two methods—`children` and `tag`—users can create custom tree representations and utilize TPath's expressive syntax to explore these trees through concise, declarative paths. The module supports a variety of selectors, predicates, and attributes, allowing for complex queries that can filter and manipulate nodes based on their properties. TPath also features an indexing mechanism to enhance performance, making it suitable for applications that require efficient tree traversal and data extraction. With its rich set of features, TPath is ideal for developers looking to work with hierarchical data in a flexible and efficient manner.

File-Lockfile-Emacs
Release | 11 Mar 2025 06:49 AM | Author: PERLANCAR | Version: 0.001
Create/check/delete Emacs-style lockfiles
File::Lockfile::Emacs is a Perl module designed to manage Emacs-style lockfiles, which help prevent simultaneous edits to the same file by multiple users. This module provides functions to create, check, and delete these lockfiles, ensuring that only one process can modify a file at a time. It returns HTTP-like status codes to indicate the success or failure of operations, such as locking a file, checking if it is locked, or unlocking it. The module is particularly useful for applications that need to coordinate file access in a multi-user environment, mimicking the behavior of Emacs. Released on March 11, 2025, this is the module's first version, and it includes an incomplete test suite, indicating ongoing development and potential for future enhancements.

OpenMP-Simple
Release | 11 Mar 2025 04:25 AM | Author: OODLER | Version: 0.2.5
Wrapper around Alien::OpenMP that provides helpful C macros and runtime C functions
OpenMP::Simple is a Perl module that serves as a convenient wrapper around the Alien::OpenMP library, providing essential C macros and runtime functions for managing OpenMP environments directly from Perl. It simplifies the integration of OpenMP into Perl applications by allowing developers to easily set and retrieve OpenMP-related environmental variables, such as the number of threads, through a user-friendly interface. The module is designed to work seamlessly with OpenMP::Environment, ensuring that users can control the OpenMP runtime environment effectively. Recent updates have introduced new macros for handling environmental variables, enhancing usability and streamlining the development process for parallelized C functions within Perl. This module is particularly beneficial for computational tasks that require efficient multi-threading capabilities.
A postmodern object system for Perl 5
Moose is a powerful object system for Perl 5 that enhances object-oriented programming by providing a more intuitive and less tedious approach to class and object management. It simplifies the creation of classes and roles, allowing developers to focus on functionality rather than boilerplate code. Moose introduces features such as type constraints, method modifiers, and attribute handling, which streamline the process of defining object attributes and behaviors. With its metaclass architecture, Moose also supports advanced features like role composition and method delegation, making it easier to build flexible and reusable code. This module is particularly beneficial for developers looking to implement modern object-oriented design patterns in Perl, while also providing extensive documentation and community support for both beginners and experienced users.

Text-CSV_XS
Favorite | 11 Mar 2025 12:58 AM | Author: HMBRAND | Version: 1.60
Comma-Separated Values manipulation routines
Text::CSV_XS is a powerful Perl module designed for efficient manipulation of comma-separated values (CSV). It provides both a functional and object-oriented interface for reading and writing CSV data, allowing users to easily parse CSV strings or files into arrays or hashes, and vice versa. The module supports customizable delimiters, escape characters, and quoting styles, making it flexible for various CSV formats. Notably, it handles embedded newlines and binary data when configured appropriately. Recent updates include improved handling of end-of-line characters within quoted fields, ensuring compatibility with strict parsing modes, and the addition of a SECURITY.md file to address potential vulnerabilities. This makes Text::CSV_XS an essential tool for developers working with CSV data in Perl, offering both performance and versatility.
Call isa, can, does and DOES safely on things that may not be objects
Safe::Isa is a Perl module designed to provide safe alternatives to the built-in methods `isa`, `can`, `does`, and `DOES`, allowing developers to call these methods on objects that may not actually be valid objects without risking runtime errors. By using Safe::Isa, you can avoid the common pitfalls associated with method calls on non-object references, as it checks if the invocant is blessed before attempting to call the method. This module introduces several functions, such as `$_isa`, `$_can`, and `$_call_if_object`, which return appropriate results or nothing if the invocant is not an object, thus preventing crashes. Notably, recent updates have improved the handling of `DOES` and `does` methods, ensuring they no longer default to `isa` in most cases, enhancing compatibility with various Perl versions.
Perl glue to the TurboVision library
The TVision Perl module serves as a bridge to the TurboVision library, enabling developers to create text-based user interfaces in Perl applications. By utilizing TVision, programmers can easily instantiate various UI components such as windows, buttons, checkboxes, and input fields, allowing for the construction of interactive console applications. The module provides a straightforward syntax for creating and managing these widgets, with each component represented as an array reference that encapsulates the underlying C++ objects. This integration facilitates the development of rich, user-friendly interfaces while leveraging the power of Perl for backend logic.
Validation Library and more
Valiant is a Perl module designed for object validation, drawing inspiration from Ruby on Rails and similar frameworks. It provides a domain-specific language (DSL) for defining validation rules and filters for Moo or Moose classes, enabling developers to enforce business logic constraints and validate user input effectively. With Valiant, you can specify various validation criteria, such as length, numericality, and custom validation methods, while also allowing for attribute filtering to clean up incoming data. The module supports internationalization for error messages, making it suitable for applications with diverse user bases. By encapsulating validation logic within the class definitions, Valiant promotes a clean separation of concerns, allowing for complex validations that can consider the state of multiple attributes. This makes it a powerful tool for ensuring data integrity in web applications and other data-driven systems.

Catalyst-Plugin-CSRFToken
Release | 10 Mar 2025 03:29 PM | Author: JJNAPIORK | Version: 1.001
Generate tokens to help prevent CSRF attacks
Catalyst::Plugin::CSRFToken is a robust plugin designed to enhance security in Catalyst applications by providing protection against Cross-Site Request Forgery (CSRF) attacks. By generating cryptographic tokens tied to user sessions, it ensures that all POST, PUT, and PATCH requests are validated against these tokens, thereby preventing unauthorized actions. The plugin allows for flexible configuration, including options for token lifespan, single-use tokens, and automatic validation, which can be enabled on a per-action basis. Notably, version 1.001 introduced significant internal changes to address security vulnerabilities present in earlier versions, making it essential for users to upgrade to this version for improved safety and reliability. The plugin also offers enhanced debugging capabilities to assist developers in monitoring token generation and validation processes.

Log-Abstraction
Release | 10 Mar 2025 01:41 PM | Author: NHORNE | Version: 0.04
A flexible logging class for Perl
Log::Abstraction is a versatile logging abstraction layer for Perl that simplifies the process of logging messages across various output formats, including files, code references, and syslog. With its flexible configuration options, users can easily create a logger instance by specifying parameters through a configuration file in formats like YAML, XML, or INI, or by directly providing logger details. The module supports multiple logging levels such as debug, info, notice, trace, and warning, allowing developers to categorize their log messages effectively. This makes Log::Abstraction an ideal choice for applications that require a robust and adaptable logging solution.
Manipulate IPv4/IPv6 netblocks in CIDR notation
The Net::CIDR Perl module provides a comprehensive suite of functions for manipulating IPv4 and IPv6 netblocks expressed in CIDR notation. It allows users to validate IP addresses and CIDR notations, convert ranges of IP addresses to CIDR format, and vice versa, as well as generate lists of possible CIDR blocks for a given IP address. Key functionalities include converting ranges to CIDR, validating addresses, and merging overlapping CIDR blocks. Recent updates, particularly in version 0.23, have improved the module by allowing unabbreviated IPv6 addresses, enhancing its usability for modern networking needs. This module is essential for developers and network administrators who require efficient handling of IP address management in their applications.
Framework Ultimatum: A Lean and Efficient Zero-Dependency Web Framework
The FU module, short for Framework Ultimatum, is a lean and efficient web development framework for Perl that operates with zero dependencies. Designed for simplicity and predictability, FU is a synchronous framework that processes one request at a time, making it ideal for straightforward applications but less suitable for long-running tasks. It includes a variety of utility modules for tasks such as JSON parsing, database interaction, and input validation, allowing developers to build robust web backends with ease. Recent updates in version 0.3 have introduced significant enhancements, including improved validation error handling, support for multipart/form-data, and new convenience methods for JSON processing, reflecting the framework's ongoing development and commitment to usability.

Image-Magick-Safer
Release | 10 Mar 2025 11:00 AM | Author: LEEJO | Version: 0.08
Wrap Image::Magick Read method to check magic bytes
Image::Magick::Safer is a Perl module that serves as a secure wrapper around the Image::Magick library, enhancing its Read method by incorporating a check for magic bytes using File::LibMagic. This additional layer of security ensures that any images being processed are verified for their MIME types, preventing potentially unsafe files from being read. If a file is deemed questionable or cannot be opened, an error is returned, allowing developers to handle such cases appropriately. The module retains the functionality of Image::Magick while providing a safer alternative, and it allows customization of unsafe MIME types. The latest version, 0.08, addresses test failures related to the new image/x-mvg MIME type, ensuring improved reliability.

App-optex-glob
Release | 10 Mar 2025 07:54 AM | Author: UTASHIRO | Version: 1.01
Optex filter to glob filenames
The `glob` Perl module serves as an optex filter for selecting filenames based on specified patterns, allowing users to efficiently pass only matching files as arguments to commands. By utilizing this module, users can filter files using glob patterns or regular expressions, and can also exclude specific patterns from the selection. For instance, it enables commands like `optex -Mglob '*.c' -- ls -l */*`, which lists only `.c` files, while ignoring non-existent files and preserving command integrity. Recent updates include the introduction of the `!pattern` syntax, which simplifies the exclusion of patterns by functioning as an alias for the `--exclude` option. This module is particularly useful for users needing precise file selection in command-line operations.