What's new on CPAN - January 2024
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure. Enjoy!
APIs & Apps
- Use Crypt::Password::Util on the command-line with App::CryptPasswordUtilUtils
- Make calculations involving Levenshtein algorithms with App::LevenshteinUtils
- App::bsky is a command-line client for the new Perl implementation of Bluesky’s AT protocol
- Generate random username with App::genusername
- Display the content of HashData modules with App::hashdata
- Indent text using App::indent
- Mslm provides the official Perl API for mslm.io services
Data
- HTML elements as objects with Data::HTML::Element
- Data::Record::Serialize::Encode::html is a role for Data::Record::Serialize that lets you serialize a hash into HTML
- Filter array data defined by Sah schemas using Data::Sah::FilterBundle::Array
- Categorization of CPAN modules with:
- Acme::CPANModules::GroupingElementsOfArray for modules that group array elements into buckets
- Acme::CPANModules::MatchingString for modules that match strings
- Acme::CPANModules::QuickGraph for chart/graphing modules
- Acme::CPANModules::RemovingElementsFromArray for modules that remove elements from an array
- Store your Apache::Session data in a MariaDB database with Apache::Session::MariaDB
- Some validation routines for Mo object system users:
- Mo::utils::CSS validates CSS
- Mo::utils::Email validates e-mail
- Parse Server Name Indication (SNI) from a TLS handshake using Parse::SNI
- A bevy of schemas for the Sah schema format:
- Sah::Schemas::Business::ID::NPWP for Indonesian taxpayer registration number (NPWP)
- Sah::Schemas::Business::ID::BCA for BCA (Bank Central Asia) bank
- Sah::Schemas::Business::ID::Mandiri for the Mandiri bank
- Sah::Schemas::Business::ID::NKK for Indonesian family card numbers (NKK)
- Sah::Schemas::Business::ID::NOPPBB for Indonesian property tax numbers (NOP PBB)
- Sah::Schemas::Business::ID::NPWP for Indonesian taxpayer registration numbers (NPWP)
- Sah::Schemas::Business::ID::SIM for Indonesian driving license numbers (nomor SIM)
- Sah::Schemas::HashData for the HashData format
- Access ArrayData and TableData data as tied arrays using Tie::Array::ArrayData and Tie::Array::TableData, respectively
- Some releases related to the TLV (tag-length-value) format:
- TLV::Parser parses strings encoded in TLV format
- TLV::EMV::Parser extracts EMV (Europay, Mastercard, and Visa) records, supported by TLV::EMV::Tags
Development & Version Control
- Date::Parse::Modern converts strings in common datetime formats to Unix time
- POE::Wheel::Run::DaemonHelper extends logging and restarting functionality of POE::Wheel::Run (for running programs/code in a subprocess)
- Create daemon processes using Acme::Ghost
- ExtUtils::Typemaps::Signal provides an XS typemap for dealing with POSIX signals
- IO::Async::Loop::Epoll::FD is a Linux-specific backend for IO::Async that uses signalfd for signal handling, timerfd for timer handling and pidfd for process handling
- Query network interfaces of your system using Socket::More::Interface
- Socket::More::Lookup provides an alternative implementation of Perl’s built-in subroutines for socket address and name resolution
- Socket::More::Resolver provides asynchronous DNS resolution with automatic integration into supported event loops or polled manually
- Many Sort::Sub-based bundles of subroutines for use with Perl’s sort function:
- Sort::SubBundle::BySimilarity to sort items based on similarity to a target string
- Sort::SubBundle::DefHash to sort DefHash data
- Sort::SubBundle::Rinci to sort Rinci metadata
- Sort::SubBundle::Sah to sort a Sah schema
- this_mod is a convenience pragma for loading modules
- Manage credential files with Crypt::Credentials
Hardware
- Device::Chip::SCD4x lets you communicate with a Sensirion SCD40 or SCD41 CO2 sensor via an I²C adapter
- IPCamera::Reolink provides a REST API to interact with Reolink IP cameras and NVRs
Language & International
- Localize your output with the following new locales for Locale::CLDR:
- Locale::CLDR::Locales::Ceb (Cebuano)
- Locale::CLDR::Locales::Doi (Dogri)
- Locale::CLDR::Locales::Kgp (Kaingang)
- Locale::CLDR::Locales::Mai (Maithili)
- Locale::CLDR::Locales::Mni (Manipuri)
- Locale::CLDR::Locales::Pcm (Nigerian Pidgin)
- Locale::CLDR::Locales::No (Norwegian)
- Locale::CLDR::Locales::Sat (Santali)
- Locale::CLDR::Locales::Sa (Sanskrit)
- Locale::CLDR::Locales::Sc (Sardinian)
- Locale::CLDR::Locales::Su (Sundanese)
- Locale::CLDR::Locales::Yrl (Nheengatu)
Science & Mathematics
- Crypt::Passphrase::Bcrypt::AES provides a peppered AES-encrypted Bcrypt encoder for Crypt::Passphrase
Web
- Mojolicious::Plugin::Credentials provides a credentials store for the Mojolicious framework
- Generate HTML tags with Tags::HTML::Element
- Web::ACL is a helper for creating basic apikey/slug/IP based ACLs
Other
- Game::Kezboard is a SDL game where cards are used to move around a board
- Games::Sudoku::PatternSolver can generate, play and solve Sudoku 9x9 grids
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub