What's new on CPAN - February 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 GnuCash to manage membership data with App::GnuCash::MembershipUtils
- Check validity of ISBN numbers listed in a file using App::ISBN::Check
- App::MARC::Record::Stats provides an app wrapper for MARC::Record::Stats
- Change the directory in your shell script to one in a list of directory “bookmarks” using App::cdbookmark
- Perform lookups and validations on the EAN-Search database using Net::EANSearch
- Post Microsoft Teams notifications using Microsoft::Teams::WebHook
Config & Devops
- Find and build the following non-Perl dependencies via Alien:
- Cowl using Alien::Cowl
- Qhull using Alien::Qhull
Data
- DBIx::Class::FilterColumn::Encrypt transparently encrypts columns for DBIx::Class
- Data::Login encapsulates some authentication/authorization data
- Remove problematic characters from filenames with Data::Sah::FilterBundle::Filename::Safe
- Data::Structure::Deserialize::Auto deserializes perl, JSON, YAML or TOML data structures from strings or files
- Data::Transfigure allows you to write reusable rules (“transfigurators”) to modify arbitrary data structures
- File::Util::Rename renames files in different ways (1 so far!)
- Yet more modules that categorize other CPAN modules this month:
- Acme::CPANModules::ArrayData for modules related to the ArrayData format
- Acme::CPANModules::FormattingDate for various methods to format dates
- Acme::CPANModules::HashData for modules related to the HashData format
- Acme::CPANModules::Import::CPANRatings::User::davidgaramond for modules mentioned by a contributor to the now defunct CPAN Ratings
- Acme::CPANModules::InfoFromCPANTesters for distributions that gather information from CPAN Testers
- Acme::CPANModules::InterestingTies for interesting uses of Perl’s tie interface
- Curacoa’s official holidays in Date::Holidays::CW
- Acrux::DBI provides a database independent interface for Acrux applications
- RDF::Cowl is a lightweight API for working with OWL 2 ontologies
Development & Version Control
- Exclude some packages from source trace with Devel::Confess::Source::Patch::ExcludePackage
- Access a HashData object as a tied hash using Tie::Hash::HashData
- A couple of scenarios for the Bencher benchmarking framework:
- Tk::AppWindow is an application framework based on Tk
- The Mo object system gets some new validation routines:
- Mo::utils::IRI for IRIs
- Mo::utils::URI for URIs
- Parse lines of the common log format used by Apache web server with Common::Log::Parser
- Compare similarity to a reference string with Comparer::similarity
- New subroutine specifications:
- SPVM::HTTP::Tiny is an HTTP client for the SPVM language
- Sort by similarity to a reference string with Sort::BySimilarity
- App::Prove::Plugin::TestArgs is an App::Prove plugin to configure test aliases and arguments
Language & International
- Data::Text::Simple encapsulates internationalized text
- A slew of new locales for Locale::CLDR:
- Locale::CLDR::Locales::Aa (Afar)
- Locale::CLDR::Locales::Ab (Abkhazian)
- Locale::CLDR::Locales::Ann (Obolo)
- Locale::CLDR::Locales::An (Aragonese)
- Locale::CLDR::Locales::Arn (Mapuche)
- Locale::CLDR::Locales::Bal (Baluchi)
- Locale::CLDR::Locales::Ba (Bashkir)
- Locale::CLDR::Locales::Bew (Betawi)
- Locale::CLDR::Locales::Bgc (Haryanvi)
- Locale::CLDR::Locales::Bgn (Western Balochi)
- Locale::CLDR::Locales::Bho (Bhojpuri)
- Locale::CLDR::Locales::Blo (Anii)
- Locale::CLDR::Locales::Blt (Tai Dam)
- Locale::CLDR::Locales::Bss (Akoose)
- Locale::CLDR::Locales::Byn (Blin)
- Locale::CLDR::Locales::Cad (Caddo)
- Locale::CLDR::Locales::Cch (Atsam)
- Locale::CLDR::Locales::Cho (Choctaw)
- Locale::CLDR::Locales::Cic (Chickasaw)
- Locale::CLDR::Locales::Co (Corsican)
- Locale::CLDR::Locales::Csw (Swampy Cree)
- Locale::CLDR::Locales::Cv (Chuvash)
- Locale::CLDR::Locales::Dv (Divehi)
- Locale::CLDR::Locales::Frr (Northern Frisian)
- Locale::CLDR::Locales::Gaa (Ga)
- Locale::CLDR::Locales::Gez (Geez)
- Locale::CLDR::Locales::Gn (Guarani)
- Locale::CLDR::Locales::Hnj (Hmong Njua)
- Locale::CLDR::Locales::Ie (Interlingue)
- Locale::CLDR::Locales::Io (Ido)
- Locale::CLDR::Locales::Iu (Inuktitut)
- Locale::CLDR::Locales::Jbo (Lojban)
- Locale::CLDR::Locales::Kaj (Jju)
- Locale::CLDR::Locales::Kcg (Tyap)
- Locale::CLDR::Locales::Ken (Kenyang)
- Locale::CLDR::Locales::Kpe (Kpelle)
- Locale::CLDR::Locales::Kxv (Kuvi)
- Locale::CLDR::Locales::La (Latin)
- Locale::CLDR::Locales::Lij (Ligurian)
- Locale::CLDR::Locales::Lmo (Lmo)
- Locale::CLDR::Locales::Mdf (Moksha)
- Locale::CLDR::Locales::Mic (Mi’kmaw)
- Locale::CLDR::Locales::Moh (Mohawk)
- Locale::CLDR::Locales::Mus (Mus)
- Locale::CLDR::Locales::Myv (Erzya)
- Locale::CLDR::Locales::Nqo (N’Ko)
- Locale::CLDR::Locales::Nr (South Ndebele)
- Locale::CLDR::Locales::Nso (Northern Sotho)
- Locale::CLDR::Locales::Nv (Navajo)
- Locale::CLDR::Locales::Ny (Nyanja)
- Locale::CLDR::Locales::Oc (Occitan)
- Locale::CLDR::Locales::Osa (Osage)
- Locale::CLDR::Locales::Pap (Papiamento)
- Locale::CLDR::Locales::Pis (Pijin)
- Locale::CLDR::Locales::Quc (Kʼicheʼ)
- Locale::CLDR::Locales::Raj (Rajasthani)
- Locale::CLDR::Locales::Rhg (Rohingya)
- Locale::CLDR::Locales::Rif (Riffian)
- Locale::CLDR::Locales::Scn (Sicilian)
- Locale::CLDR::Locales::Sdh (Southern Kurdish)
- Locale::CLDR::Locales::Shn (Shan)
- Locale::CLDR::Locales::Sid (Sidamo)
- Locale::CLDR::Locales::Sma (Southern Sami)
- Locale::CLDR::Locales::Smj (Lule Sami)
- Locale::CLDR::Locales::Sms (Skolt Sami)
- Locale::CLDR::Locales::Ssy (Saho)
- Locale::CLDR::Locales::Ss (Swati)
- Locale::CLDR::Locales::St (Southern Sotho)
- Locale::CLDR::Locales::Syr (Syriac)
- Locale::CLDR::Locales::Szl (Silesian)
- Locale::CLDR::Locales::Tig (Tigre)
- Locale::CLDR::Locales::Tn (Tswana)
- Locale::CLDR::Locales::Tok (Toki Pona)
- Locale::CLDR::Locales::Tpi (Tok Pisin)
- Locale::CLDR::Locales::Tyv (Tuvinian)
- Locale::CLDR::Locales::Vec (Venetian)
- Locale::CLDR::Locales::Ve (Venda)
- Locale::CLDR::Locales::Vmw (Makhuwa)
- Locale::CLDR::Locales::Wal (Wolaytta)
- Locale::CLDR::Locales::Wa (Walloon)
- Locale::CLDR::Locales::Wbp (Warlpiri)
- Locale::CLDR::Locales::Xnr (Kangri)
- Locale::CLDR::Locales::Za (Zhuang)
Web
- Use Web Components in the Mojolicious framework with Mojolicious::Plugin::WebComponent
- Add change password functionality to a website with Tags::HTML::ChangePassword and Plack::App::ChangePassword
- Plugins for the WWW::Suffit, the Mojolicious-based “metasystem”:
- WWW::Suffit::Plugin::ConfigAuth for authentication and authorization via configuration
- WWW::Suffit::Plugin::FileAuth for authentication and authorization by password file
- WWW::Suffit::Plugin::SuffitAuth for general authentication and authorization
Other
- Bundle::WATERKIP collects scripts and modules that CPAN author WATERKIP relies on
- Download and store FIDE ratings with Chess::ELO::FIDE
- Visualize and play collections of standard 9x9 Sudoku in your browser with Games::Sudoku::Html
- Produce pdf files from your digital Sudoku sources or collections using Games::Sudoku::Pdf
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub