CPANscan logo

CPANscan

Recent Perl modules, releases and favorites.
Last updated 4 July 2026 08:30 PM
Perl logo

Matplotlib-Simple

Release | 4 Jul 2026 07:03 PM | Author: DCON | Version: 0.3
Access Matplotlib from Perl; providing consistent user interface between different plot types
Matplotlib::Simple is a Perl helper that converts Perl data structures into ready-to-run Python3/matplotlib scripts so you can produce charts without learning matplotlib itself. You provide hashes, arrays or nested structures and simple options and the module emits Python that creates single plots, overlays and multi-panel figures in many common styles including bar, boxplot, hist, hist2d, hexbin, imshow, pie, plot, scatter, violin and colored tables. It supports labels, colors, legends, colorbars, shared axes and twin axes and writes the script into the system temporary directory so you can edit or execute it to save PNG, SVG or other image formats. The module is aimed at making common plotting tasks easy from Perl and works cross platform, but it does require a Python 3 interpreter and matplotlib to be installed.
Perl logo

Algorithm-EventsPerSecond

Release | 4 Jul 2026 06:34 PM | Author: VVELOX | Version: v0.0.1
CPAN Testers: Pass 100.0%
A sliding-window events-per-second rate counter with a optional XS backend for additional zoomies
Algorithm::EventsPerSecond is a compact sliding-window meter that tracks events per second over a fixed recent window, keeping per-second counts in a small ring buffer so memory use stays constant even under high event volumes and mark and rate operations are effectively O(1). You create a meter with a window length, call mark to record events, and query count, rate, and total to get the number seen in the window, the averaged events/sec and the lifetime total; rate uses the meter's elapsed lifetime when it is younger than the window so early readings are reasonable. The module ships with an optional XS backend that stores the ring in packed int64 buffers and scans the window in C, using SIMD (AVX2 or SSE4.2) when available for extra speed, while a pure-Perl implementation with identical behavior is used if the XS backend cannot be built or is disabled at runtime. Install-time and runtime controls let you force a pure-Perl build or tweak compiler flags and architecture, and the backend and simd methods let you detect which implementation is active. This is an initial 0.0.1 release, useful when you need a low-overhead, predictable-rate meter for monitoring or throttling in event-driven systems.
Perl logo

CPAN-Maker-Bootstrapper

Release | 4 Jul 2026 06:31 PM | Author: BIGFOOT | Version: v2.0.4
CPAN Testers: Pass 100.0%
CPAN::Maker::Bootstrapper
CPAN::Maker::Bootstrapper is a command line scaffold that creates a complete, buildable Perl CPAN distribution in one step, producing a managed Makefile, buildspec.yml, stub source and test files, and a ready-to-run build system so you can run make to generate a distributable tarball immediately. It uses a traditional stack of GNU make, bash, and Perl to give you reproducible, local builds without relying on cloud CI services and encourages good practices with .pm.in sources, automatic dependency scanning, syntax checks, perltidy and perlcritic gates, and an upgrade-safe extension point in project.mk. You can import existing projects or use built-in or custom stubs for normal modules or CLI tools, and the installer seeds VERSION, ChangeLog, README generation, and release targets so versioning and release-notes workflows are integrated. Advanced features include AI-assisted code, POD, and release-note generation via the Anthropic Claude API with a structured review and annotation workflow to iteratively suppress noise and certify findings. Configuration is read from your git config or a simple ini file and you can customize prompt profiles, API key retrieval, install locations, and build options. Be aware that imported files become .in sources, generated .pm and .pl files are overwritten by the build, import and stub modes are mutually exclusive, and the tool expects git, make, and curl on your PATH and an LLM API key for AI commands.
Perl logo

Chorus

Release | 4 Jul 2026 03:10 PM | Author: IVORRACH | Version: v2.0.1
Perl inference engine and AI-assisted compliance-checking platform
Chorus is a Perl-based symbolic inference platform for turning legal, policy or other normative text into deterministic, reproducible compliance-checking pipelines. It bundles a typed inference engine where rules can be written in Perl or in a compact YAML DSL, together with an AI agent companion that helps extract and formalize rules from source documents while leaving execution fully deterministic and offline. Chorus is suited to teams building auditable automation for compliance, policy enforcement or risk checks who want clear, reproducible decision logic rather than opaque statistical models. Recent releases add a declarative TERMINAL field for YAML pipelines, better frame selection and lifecycle hooks, logging and loop-guarding to avoid runaway cycles, plus expanded bilingual documentation and AI agent skills to streamline corpus-to-pipeline workflows.
Perl logo

Crypt-OpenSSL3

Release | 4 Jul 2026 02:50 PM | Author: LEONT | Version: 0.010
CPAN Testers: Pass 100.0%
A modern OpenSSL wrapper
Crypt::OpenSSL3 is a modern Perl wrapper around the OpenSSL crypto and TLS library that lets Perl code use SSL/TLS connections, asymmetric keys, symmetric ciphers, message digests, MACs, key derivation functions, and X.509 certificate handling through a set of focused modules. The top-level distribution provides lightweight error handling and introspection of how the underlying OpenSSL was built, exposing helpers to query version and build configuration so you can adapt to different OpenSSL installs. If you write Perl that needs secure network connections, certificate parsing and validation, or cryptographic primitives without dropping into C, this package gives you a direct, maintained interface to those OpenSSL features. The recent 0.010 release switched the license to Apache 2.0 and added conveniences such as DER encode/decode from strings, generic ASN.1 value support, PEM helper functions, an EDIPartyName class, a get_all_certs helper for X509::Store, and a set of memory-management fixes, making it easier and safer to work with modern OpenSSL capabilities.
Perl logo

Object-Remote

Release | 4 Jul 2026 02:34 PM | Author: EHUELS | Version: 0.005001
Upvotes: 20 | CPAN Testers: Pass 100.0%
Call methods on objects in other processes or on other hosts
Object::Remote lets you create Perl objects and call their methods in other processes or on other hosts, typically over ssh, without having to install non-core modules on the remote side. It provides a simple API to connect to a remote interpreter, construct objects on that interpreter with new::on, obtain remote subroutine references with can::on, and perform asynchronous calls with its Future helpers. Configuration and behavior can be controlled with environment variables for the remote perl executable, event loop implementation, and logging options, and it can forward remote log events back to the local process. This makes it handy for running pieces of Perl code or maintenance tasks across machines while keeping your local code interface natural and minimal. Be aware of documented limitations though: all data is passed via JSON which can be slow or memory intensive for very large or deeply nested structures; the cooperative run loop requires you to yield control so I/O and timers run; high load can delay timers or starve connections; deadlocks are possible and a watchdog helper exists to mitigate them; and there are known issues with IO::Async on nested connections. Overall it is a powerful tool for remote execution and control when you need to work with remote Perl objects without deploying extra software on the far side.
Perl logo

Getopt-Class

Release | 4 Jul 2026 01:32 PM | Author: JDEGUEST | Version: v1.1.5
Upvotes: 3 | CPAN Testers: Pass 97.1%N/A 2.9%
A class based approach for options of Getopt::Long
Getopt::Class is a lightweight wrapper around Getopt::Long that helps you define, group and validate command line options as named classes of properties so different parts of your program can declare their own sets of options cleanly. You supply a dictionary that describes each option with type, aliases, defaults and validation rules and the module generates the Getopt::Long specs, parses the arguments and returns a blessed values object you can access as a hash or as object methods. Supported types include booleans, strings, integers, arrays, hashes, file and uri objects, datetimes and code actions, and it adds conveniences such as mirrored enable/disable or with/without options and automatic dash/underscore aliasing. The module provides class-level helpers to extract and validate only the options for a given feature, reports validation or parsing issues via an error object instead of dying, and wraps values in small typed objects for easier downstream use. The current 1.1.5 release made dependency updates only and did not change the public API.
Perl logo

Perl-Tidy

Release | 4 Jul 2026 01:24 PM | Author: SHANCOCK | Version: 20260705
Upvotes: 149 | CPAN Testers: Pass 100.0%
Indent and reformat perl scripts
Perl::Tidy exposes the perltidy formatter as a library so you can clean up and consistently style Perl source from within your own programs instead of calling the perltidy command line. Call Perl::Tidy::perltidy with files, string or array references, or objects that implement getline and print to read or write code, or supply argv and perltidyrc arguments to control formatting and to dump or inspect the effective options. You can insert custom prefilters and postfilters to transform input or output, or provide a formatter object with a write_line callback to receive tokenized lines for specialized analysis or processing. The routine returns an exit flag so your program can detect fatal parameter errors or warnings, and perltidy can also produce separate stderr, .ERR, log, tee, and debug streams as needed. Note that handling of decoded versus encoded UTF8 output strings changed in recent versions and is controlled with the -eos or -neos flags, so take care when passing or receiving string references. The module ships with the perltidy command line script and is installable from CPAN.
Perl logo

CTKlib

Favorite | 4 Jul 2026 01:08 PM | Author: ABALAMA | Version: 2.09
Upvotes: 2 | CPAN Testers: Pass 100.0%
CTK ToolKit library (CTKlib)
CTK (CTKlib) is a compact toolkit of Perl utilities and helper modules designed to simplify building daemons, automation "robots" and command line applications. It gives you a central CTK object to manage project layout, config files, data and temp paths, logging and debug output, command line options and plugin loading, and it bundles a variety of supporting modules for tasks such as DBI access, file handling, FTP/SFTP, serialization and running as a daemon. The library emphasizes simple, readable APIs and pluggable extensions so common infrastructure is handled for you while you focus on application logic. Note that versions 2.00 and later are not compatible with earlier releases and the 2.x series added a serializer, CTK::Daemon, CTK::Timeout and expanded plugin and network support while removing some deprecated utilities. If you need consistent configuration, logging, plugin and daemon support for Perl services or automation scripts CTK is likely a good fit.
Perl logo

Number-ZipCode-JP

Favorite | 4 Jul 2026 01:00 PM | Author: TANIGUCHI | Version: 0.20260630
Upvotes: 2 | CPAN Testers: Pass 100.0%
Validate Japanese zip-codes
Number::ZipCode::JP is a compact Perl module for checking whether a Japanese postal code is valid according to Japan Post rules, letting you construct a zip object from either two parts (area and suffix) or a single string with or without a dash and then call is_valid_number to verify it. You can limit validation to specific categories such as area or company codes by importing the matching table, and you can change the target code with set_number. The module relies on updatable table classes that are refreshed frequently to track postal changes, so it stays current with Japan Post data, and a past release fixed a regex compatibility issue to support older Perl versions.
Perl logo

Mail-Sendmail

Release | 4 Jul 2026 09:11 AM | Author: NEILB | Version: 0.83
Upvotes: 1 | CPAN Testers: Pass 95.9%Fail 4.1%
Simple platform independent mailer
Mail::Sendmail is a lightweight, cross-platform Perl module that lets your script send email directly via SMTP with minimal setup. You provide message fields and options in a simple hash and call sendmail, and the module handles common needs like Date headers, Bcc and Cc, real names in addresses, retries and alternate servers, and optional quoted-printable encoding when MIME::QuotedPrint is installed. It only requires Perl 5 and a network connection, so it is handy for CGI pages and automation scripts. It is not intended for very large attachments because the whole message is built in memory. Headers are not MIME-encoded so accented characters may not always be handled unless you use MIME::QuotedPrint. You must configure or supply an SMTP server and note that SMTP authentication support is experimental.
Perl logo

Module-Generic

Release | 4 Jul 2026 06:25 AM | Author: JDEGUEST | Version: v1.6.0
Upvotes: 4 | CPAN Testers: Pass 82.2%Fail 15.6%N/A 2.2%
Generic Module to inherit from
Module::Generic is a feature-rich base class for building Perl object APIs quickly and consistently. It provides a large collection of helper accessors and lvalue-capable setters for common types such as scalars, numbers, booleans, datetimes, URIs, IPs and UUIDs, plus machinery to turn hashes and arrays into object wrappers or dynamically created classes with typed fields via create_class. The module also centralizes error and exception handling, offers flexible serialization/deserialization (JSON, CBOR, Sereal, Storable::Improved), runtime class loading, debugging and coloured terminal output, and optional XS-accelerated utility routines for better performance. It is aimed at module authors and application developers who want to prototype or implement rich data objects without writing repetitive boilerplate, and the distribution pays close attention to thread and process safety while documenting which metaprogramming features should be run at startup to avoid races. Noteworthy in the recent v1.6.0 release are new pure-Perl subroutine introspection helpers (_subinfo and _subname) and further refinements to the numeric handling and cloning behavior.
Perl logo

File-Raw-Archive

Release | 4 Jul 2026 06:15 AM | Author: LNATION | Version: 0.01
CPAN Testers: Pass 78.9%Fail 3.5%Unknown 17.5%
Archive container reader/writer
File::Raw::Archive is a compact, streaming reader/writer for archive containers that makes it easy to list, inspect, extract, or build archives from Perl without loading whole files into memory. It ships with a robust tar plugin that understands real-world tar dialects including ustar, GNU @LongLink, and PAX and preserves sub-second mtimes and SCHILY.xattr.* extended attributes when extracting on platforms that support xattr. The API is simple and script-friendly with methods and exportable functions for open, each, list, extract, extract_all, and create, plus options for gzip compression, format selection, entry filtering, and safe extraction that blocks path traversal. For heavier workloads extract_all can dispatch file writes to a forked worker pool for parallel extraction and the module exposes a C plugin API so additional format plugins such as zip, cpio, or ar can be added at runtime. This release is the first public version and highlights streaming gzip handling, PAX global metadata support, entry filtering, and the plugin architecture.
Perl logo

Travel-Status-DE-IRIS

Release | 4 Jul 2026 05:53 AM | Author: DERF | Version: 2.05
CPAN Testers: Pass 100.0%
Interface to IRIS based web departure monitors
Travel::Status::DE::IRIS is a Perl client for the Deutsche Bahn IRIS web departure monitors that fetches scheduled and realtime departure/arrival information for a given station and returns structured Result objects you can use in scripts or infoscreens. It supports blocking requests and an experimental non‑blocking constructor that works with Mojo::Promise and Mojo::UserAgent, optional caching of station and realtime queries, automatic merging or preservation of trains that change IDs at a stop, and a with_related option to include nearby or subdivided platform entries. The module aims to mask IRIS quirks such as transfer trains and platform changes while exposing useful options like lookahead/lookbehind and access to related station metadata. Note that the IRIS backend is deprecated and this module is not actively maintained, so it is not recommended for new projects and you should consider Travel::Status::DE::DBRIS as an alternative. The current 2.05 release mostly updates station and meta databases to keep the built‑in station data current.
Perl logo

OpenSearch-Client

Release | 4 Jul 2026 01:25 AM | Author: MDOOTSON | Version: 3.007002
CPAN Testers: Pass 100.0%
An unofficial Perl client for OpenSearch
OpenSearch::Client is an unofficial Perl client that lets Perl applications talk to OpenSearch clusters for indexing, searching and cluster management. It was created when OpenSearch forked away from Elasticsearch and is derived from the familiar Search::Elasticsearch API, so existing Perl code using that client can be adapted more easily. The module defaults to connecting to localhost:9200 and provides a comprehensive API surface with documentation available in OpenSearch::Client::Manual. This distribution is maintained by Mark Dootson, is released under the Apache 2.0 license, and the 3.007.000 series represents the initial release with subsequent minor pod updates.
Perl logo

Net-Nostr-Relay

Release | 3 Jul 2026 10:35 PM | Author: NHUBBARD | Version: 1.001000
CPAN Testers: Pass 94.6%Fail 1.8%N/A 3.6%
WebSocket relay server for the Nostr protocol
Net::Nostr::Relay is a compact, in-process Nostr WebSocket relay that accepts client connections, manages subscriptions, stores events in an indexed in-memory backend (or a pluggable store), and broadcasts matching events to subscribers. It implements the core Nostr protocol and several NIPs such as authentication (NIP‑42), relay info (NIP‑11), event deletion (NIP‑09), proof‑of‑work (NIP‑13) and expiration handling, and it respects event semantics like replaceable, ephemeral, and addressable events. The module offers practical controls for real deployments including per-connection rate limiting, configurable event and message size caps, subscription and filter limits, idle and graceful shutdown timeouts, optional TLS, and an on_event hook for custom validation or filtering. Events are not persisted across restarts unless you supply a persistent store, and you can also inject events programmatically for testing. This release splits the relay implementation and default RelayStore out of Net::Nostr into its own distribution and depends on Net::Nostr::Core for protocol objects and validation.
Perl logo

Net-Nostr-Client

Release | 3 Jul 2026 10:33 PM | Author: NHUBBARD | Version: 1.001000
CPAN Testers: Pass 98.2%N/A 1.8%
WebSocket client for Nostr relays
Net::Nostr::Client is a lightweight WebSocket client for connecting to Nostr relays and exchanging protocol messages. It gives a callback-driven API to publish signed events, manage subscriptions and receive stored and live events, perform one-shot counts (NIP-45), and run negentropy set reconciliation (NIP-77), and it supports NIP-42 authentication. You can connect synchronously or asynchronously to ws or wss relays and control TLS verification via options like ssl_no_verify and ssl_ca_file. Register handlers for event, ok, eose, notice, count, closed, auth, neg_msg and neg_err to react to relay messages as they arrive. Methods will croak when called with bad arguments or while disconnected and assigning a new handler for a given event type replaces the previous handler. If you need programmatic, Perl-native access to Nostr relays with built in support for these NIPs, this module provides a straightforward, callback-based way to do it.
Perl logo

Net-Nostr-Core

Release | 3 Jul 2026 10:12 PM | Author: NHUBBARD | Version: 1.001000
CPAN Testers: Pass 97.6%Fail 1.2%N/A 1.2%
Core tooling for the Nostr protocol
Net::Nostr::Core is a focused Perl toolkit that implements the core data types and protocol utilities for the Nostr decentralized messaging protocol. It provides modules like Net::Nostr::Event, Net::Nostr::Key, Net::Nostr::Filter and Net::Nostr::Message so you can create, sign, filter and process Nostr events and messages, and it is the foundation used by client and relay distributions. This first independent release splits core protocol functionality out of the larger Net::Nostr distribution, targets the current NIP set as of 2026-07-01, and makes HTTP support optional by lazy-loading AnyEvent::HTTP only for NIP-05 lookup and verification. If you want a full client or relay stack use the Net::Nostr shim which pulls in the recommended dependencies, but if you only need protocol primitives for building or testing Nostr tools, Net::Nostr::Core gives a compact, minimal implementation.
Perl logo

Perl5-Build-Warnings

Release | 3 Jul 2026 07:23 PM | Author: JKEENAN | Version: 0.06
CPAN Testers: Pass 97.6%N/A 2.4%
Parse make output for build-time warnings
Perl5::Build::Warnings is a small utility for parsing the output of make when building the Perl 5 core so you can study compiler warnings across a build. You point it at a plain text or gzipped make/test_prep log and it extracts warnings that match the typical "<file>:<line>:<char>: warning: ... [-W...]" form, normalizes the warning class to a "W..." name and exposes the results programmatically. The module can return a list of all parsed warnings, counts by warning class, or filtered lists for a particular warning class or source file, and it can pretty-print a summary to STDOUT. It has no runtime dependencies outside the Perl core and is primarily aimed at Perl core developers or maintainers who want a quick way to tally and inspect build-time warnings, provided the log uses the expected warning format.
Perl logo

JSON-Schema-Tiny

Release | 3 Jul 2026 05:39 PM | Author: ETHER | Version: 0.034
Upvotes: 3 | CPAN Testers: Pass 100.0%
Validate data against a schema, minimally
JSON::Schema::Tiny is a slim, fast Perl validator that checks ordinary Perl data structures against JSON Schema rules. It offers a simple functional call and an object-oriented API and returns a clear result indicating validity and, when validation fails, JSON Schema style error details. The module implements the most commonly used keywords so it is well suited for everyday validation tasks while deliberately omitting some advanced features such as external $ref resolution, annotations and several newer draft keywords to keep the code small and quick. You can tweak behavior with options like boolean-only results, depth limits, and tolerant handling of boolean or numeric-like values. Be aware that regexes from schemas are evaluated without sanitization so do not use untrusted schemas, and use a reliable JSON decoder such as Cpanel::JSON::XS so data types are preserved. For a more complete, specification-compliant alternative see JSON::Schema::Modern.
Perl logo

Crypt-DSA

Release | 3 Jul 2026 12:29 PM | Author: TIMLEGGE | Version: 1.22
CPAN Testers: Pass 100.0%
DSA Signatures and Key Generation
Crypt::DSA is a Perl library that implements the Digital Signature Algorithm so you can generate DSA key pairs, sign messages or digests, and verify signatures; it is written in Perl and uses Math::Pari for the heavy math. The API is modeled on Crypt::RSA and supports configurable p bit length, optional seed and verbosity during key generation, and automatic SHA-1 hashing of messages when you pass plain text to sign or verify. Note that DSA and SHA-1 are now considered weak for new signatures, so this module is best used for verifying legacy signatures or when a DSA signature is explicitly required. It does not yet provide built-in key file format conversions such as SSH key files.
Perl logo

IO-Compress

Release | 3 Jul 2026 12:29 PM | Author: PMQS | Version: 2.222
Upvotes: 20 | CPAN Testers: Pass 100.0%
IO Interface to compressed data files/buffers
IO::Compress is nominally a module for reading and writing compressed data in multiple formats, but this particular release is only a stub and contains no code. It exists mainly as a placeholder on CPAN for packaging or compatibility and therefore does not provide compression or decompression functionality itself. If you need to work with compressed data, use the concrete implementations such as IO::Compress::Gzip or IO::Compress::Bzip2 or other compression modules. The stub is maintained by Paul Marquess and is distributed under the same license as Perl.
Perl logo

Sys-Virt

Release | 3 Jul 2026 12:26 PM | Author: DANBERR | Version: v12.5.0
Upvotes: 17 | CPAN Testers: N/A 4.5%Unknown 95.5%
Libvirt Perl API
Sys::Virt is a Perl XS binding for the libvirt API that lets Perl scripts and applications connect to and control virtualization hosts with a single, consistent interface. It supports opening connections to local or remote hypervisors via libvirt URIs, creating and defining domains, networks, storage pools and volumes, inspecting host capabilities and resource statistics, and registering event callbacks for domain, network, storage and device lifecycle changes. The module surfaces libvirt features such as authentication callbacks, CPU and migration helpers, stream and save/restore operations, and returns failures as Sys::Virt::Error exceptions so they are easy to catch from Perl code. Because it uses callbacks into C, you must deregister any registered callbacks before discarding a connection object to allow the connection to be closed and memory reclaimed. Sys::Virt is a mature, actively maintained binding that requires the libvirt library on the host and keeps up with libvirt additions for new constants and APIs, most recently adding the virDomainAnnounceInterface API and related constants as well as support for vCPU removal and related event and stats constants.
Perl logo

Mojolicious-Plugin-Localize

Release | 3 Jul 2026 07:31 AM | Author: AKRON | Version: 0.23
CPAN Testers: Pass 100.0%
Localization Framework for Mojolicious
Mojolicious::Plugin::Localize is a localization plugin for the Mojolicious web framework that gives you a dictionary-driven way to manage translated text and render it from controllers and templates. You register it with a nested dictionary or resource files and it merges entries while offering an override option, then exposes helpers like loc to fetch messages and localize->dictionary to inspect the merged data. Dictionary values can be Mojo::Template strings or code references so translations may include variable interpolation and additional lookups, and the module provides convenient short notation for keys such as de_tree_plural. It also supports preferred and default fallbacks via special keys underscore and dash, an end key to force final values, and a command to generate locale templates. The localize->preference helper is marked experimental and CLDR support is listed as a future enhancement. The plugin is inspired by Mozilla l20n, available on GitHub, and released under the Artistic License 2.0.
Perl logo

XML-Loy

Release | 3 Jul 2026 07:21 AM | Author: AKRON | Version: 0.53
Upvotes: 7 | CPAN Testers: Pass 97.7%Fail 2.3%
Extensible XML Reader and Writer
XML::Loy is a lightweight, extensible XML builder for Perl that makes it easy to construct, traverse and serialize small XML documents. It leverages Mojo::DOM to provide a simple API for creating elements, attributes, text and comments, selecting nodes with CSS3-style selectors and producing pretty-printed output with special content modes such as escaped, raw or armour-wrapped (for base64). The module supports namespaces and a pluggable extension system with bundled helpers for formats like Atom, XRD, GeoRSS, ActivityStreams, OStatus and HostMeta, and extensions can add convenience methods and preferred namespace prefixes or MIME types. Because it is written in pure Perl and emphasizes simplicity and extensibility over raw speed, XML::Loy is best suited for small serialized documents rather than huge, performance-critical parsing tasks. Recent releases include updates to stay compatible with modern Mojolicious, including a fix for Mojolicious 9.31.
Perl logo

Sendmail-PMilter

Release | 3 Jul 2026 07:03 AM | Author: GWHAYWOOD | Version: 1.28
Upvotes: 2 | CPAN Testers: Pass 99.1%N/A 0.9%
Perl bindings for Sendmail/Postfix milter interface
Sendmail::PMilter is a pure-Perl implementation of the Sendmail Milter protocol that lets you write mail filters in Perl to inspect, modify, accept or reject messages as they flow through an MTA that supports milters. It implements modern Milter Protocol version 6 and exposes a simple API for registering callback handlers, configuring the listener (setconn or auto_setconn for Sendmail configurations), choosing a dispatch strategy for handling connections, and entering the protocol loop via main. The module ships several dispatchers for different concurrency models and the prefork dispatcher is the most exercised and recommended, while others are marked as not thoroughly tested. It exports the usual milter return codes so your callbacks can continue, reject, discard or accept messages, and it includes helpers to read Sendmail configuration values. Note the security advice in the docs: avoid running Perl milters as root and drop privileges after creating any privileged sockets.
Perl logo

Algorithm-Time-ToNumber

Release | 3 Jul 2026 06:39 AM | Author: VVELOX | Version: v0.0.1
CPAN Testers: Pass 72.9%Fail 27.1%
Convert time to a number
Algorithm::Time::ToNumber converts clock times into simple numeric features for analytics and machine learning, with helpers for both naive and circular encodings. It offers two basic numeric mappings called noon_fail and midnight_fail that map time to a single number but have opposite wrap artifacts causing a gap at 12:00 or 00:00 respectively. For proper circular encoding it provides circle which returns two floats, sine and cosine of the time angle, so you can represent time-of-day without discontinuities and use both values as separate features for algorithms like isolation forest. The angle routine returns only the sine component for a cheaper single-value approximation but can produce overlapping points. There is also suricata_to_circle to parse Suricata EVE timestamps and return the same circle pair ready for modeling. Use this module when you need compact, model-friendly numeric representations of time-of-day.
Perl logo

Algorithm-Classifier-NaiveBayes

Release | 3 Jul 2026 03:55 AM | Author: VVELOX | Version: v0.0.1
CPAN Testers: Pass 90.6%Fail 9.4%
A multinomial naive Bayes text classifier with Laplace smoothing
Algorithm::Classifier::NaiveBayes is a compact Perl module that gives you a ready-to-use multinomial naive Bayes text classifier with sensible defaults and a handful of practical tunables. You train it by feeding labeled strings and it tokenizes text (configurable splitter, lowercase and stop-word filtering) with optional n-grams, supports either raw-count or binary token weighting, and scores classes using log priors plus smoothed token probabilities with Laplace or Lidstone (add-alpha) smoothing. It provides simple train, untrain and prune operations, a classify method that returns the best class plus per-class scores and normalized probabilities, and an explain method that breaks down which tokens drove the decision. Models are JSON-serializable for saving and reloading, scoring options can be tweaked after training, and outputs are deterministic. Note that, as with most naive Bayes classifiers, returned probabilities may be overconfident and are best used for ranking or thresholding. This is the initial release of the module.
Perl logo

Net-Nostr

Release | 3 Jul 2026 02:32 AM | Author: NHUBBARD | Version: 2.001000
CPAN Testers: Pass 73.0%Fail 21.6%N/A 5.4%
Client and relay library for the Nostr protocol
Net::Nostr is a full-featured Perl implementation of the Nostr protocol that lets you build both clients and relays and provides focused helpers for identity, event creation, messaging, storage, and many protocol extensions. The distribution is organized into many purpose-built modules such as Net::Nostr::Key for secp256k1 keypair and signing, Net::Nostr::Event for creating and verifying events, Net::Nostr::Client for WebSocket client connections, and Net::Nostr::Relay for running relay servers, plus dozens of NIP-specific helpers for things like encrypted direct messages, media attachments, lists, badges, and more. It targets a wide range of NIPs up to the 2026-07-01 conformance commit and is suitable for developers building clients, bots, relays, gateways, or embedding Nostr features into apps. Recent releases expanded protocol coverage and tightened validation, adding NIP-29 group identifiers, NIP-43 role definitions and role management checks, NIP-44 extended encryption and NIP-59 ephemeral gift wraps, NIP-78 app-data support, and other conformance and security improvements, and the library also supports secure TLS/wss relay connections.