Changes for version v1.5.3 - 2026-06-02

  • Fixed END phase failures reported by CPAN Testers on perl 5.40+ and FreeBSD smokers. The phase guards added in v1.5.2 made Module::Generic::Global->new() return undef during END/DESTRUCT phases, causing callers like Module::Generic::_is_class_loaded() to crash with "Can't call method 'exists' on an undefined value" or "Died at Module/Generic.pm line 455" when a module triggered class loading from an END block.
  • Removed phase guards from public methods of Module::Generic::Global. The refactor of leaf-scalar locks to parent-hash locks in v1.5.2 eliminated the underlying SIGSEGV cause; the additional phase protection was redundant and prevented normal operation during END.
  • Phase guards retained in _share_repo() to avoid initialising new :shared structures during interpreter shutdown, and in Module::Generic::Global::Guard::DESTROY.
  • Module::Generic::Global bumped to v1.2.1.

Documentation

An Enhanced DateTime::Duration Object
An Array Iterator Element Object Class
A Regexp Result Object
Shared Memory Manipulation

Modules

Generic Module to inherit from
An Array Manipulation Object Class
Boolean Representation Class
A DateTime wrapper for enhanced features
Dynamic Object Class
Generic Module Exception Class
File Object Abstraction Class
File-based Cache
File IO Object Wrapper
File type and MIME detection with 3-level backend cascade
MMap File Class
File Info Object Class
Contextual global storage by namespace, class or object
Hash Manipulation Object Class
Generic Header Value Parser
An Array Iterator Object Class
A thin and reliable wrapper around JSON
Null Value Chaining Object Class
Number Manipulation Object Class
String Manipulation Object Class
Generic Module Scalar IO Class
Shared Memory Manipulation
Shared Memory Manipulation with XS API
Object Access Control Class
Generic Tie Hash Mechanism for Object Oriented Hashes

Provides

in lib/Module/Generic/DateTime.pm
in lib/Module/Generic/Number.pm
in lib/Module/Generic/Iterator.pm
in lib/Module/Generic/Number.pm
in lib/Module/Generic/Number.pm