Module::CoreList(3pm)
Hey bestie π welcome to Module::CoreList β aka the Module::CoreList(3pm) page, but make it group-chat friendly. If youβve ever needed to know which modules shipped with which version of perl, this is literally your girl. No cap. β¨
πΈ NAME πΈ
Module::CoreList β the whole vibe is what modules shipped with versions of perl. π«Ά
β¨ SYNOPSIS β¨
Peep the quick-start, bestie:
use Module::CoreList;
print $Module::CoreList::version{5.00503}{CPAN}; # prints 1.48
print Module::CoreList->first_release('File::Spec');
# prints 5.00405
print Module::CoreList->first_release_by_date('File::Spec');
# prints 5.005
print Module::CoreList->first_release('File::Spec', 0.82);
# prints 5.006001
if (Module::CoreList::is_core('File::Spec')) {
print "File::Spec is a core module\n";
}
print join ', ', Module::CoreList->find_modules(qr/Data/);
# prints 'Data::Dumper'
print join ', ',
Module::CoreList->find_modules(qr/test::h.*::.*s/i, 5.008008);
# prints 'Test::Harness::Assert, Test::Harness::Straps'
print join ", ", @{ $Module::CoreList::families{5.005} };
# prints "5.005, 5.00503, 5.00504"
π DESCRIPTION π
Module::CoreList gives you the tea β on which core and dual-life modules shipped with each version of perl. Literally the receipts.
It provides a bunch of mechanisms for querying this info. Multiple ways to get your answers β main character energy.
Thereβs a utility called corelist provided with this module, which is a convenient way of querying from the command-line. Slay for terminal girlies. π»β¨
Thereβs also a functional programming API available for programmers to query information. Very demure, very mindful.
Programmers may also query the contained hash structures to find relevant information. Yes, the data structures are right there, bestie. π
π§ FUNCTIONS API π§
These are the functions that are available β they may either be called as functions or class methods:
Module::CoreList::first_release('File::Spec'); # as a function
Module::CoreList->first_release('File::Spec'); # class method
first_release( MODULE )β Behaviour since version2.11. Requires aMODULEname as an argument, returns the perl version when that module first appeared in core as ordered by perl version number, orundef( in scalar context ) or an empty list ( in list context ) if that module is not in core. πfirst_release_by_date( MODULE )β Requires aMODULEname as an argument, returns the perl version when that module first appeared in core as ordered by release date, orundef( in scalar context ) or an empty list ( in list context ) if that module is not in core. ποΈfind_modules( REGEX, [ LIST OF PERLS ] )β Takes a regex as an argument, returns a list of modules that match the regex given. If only a regex is provided, it applies to all modules in all perl versions. Optionally you may provide a list of perl versions to limit the regex search. πfind_version( PERL_VERSION )β Takes a perl version as an argument. Upon successful completion, returns a reference to a hash. Each element of that hash has a key which is the name of a module (e.g.,'File::Path') shipped with that version of perl, and a value which is the version number (e.g.,'2.09') of that module which shipped with that version of perl. Returns"undef"otherwise. π¦is_core( MODULE, [ MODULE_VERSION, [ PERL_VERSION ] ] )β Available in version2.99and above. Returns true ifMODULEwas bundled with the specified version of Perl. You can optionally specify a minimum version of the module, and can also specify a version of Perl. If a version of Perl isnβt specified,is_core()will use the numeric version of Perl that is running (ie$]). If you want to specify the version of Perl, but donβt care about the version of the module, pass"undef"for the module version: βis_deprecated( MODULE, PERL_VERSION )β Available in version2.22and above. Returns true ifMODULEis marked as deprecated inPERL_VERSION. IfPERL_VERSIONis omitted, it defaults to the current version of Perl. πdeprecated_in( MODULE )β Available in version2.77and above. Returns the first perl version where theMODULEwas marked as deprecated. Returns"undef"if theMODULEhas not been marked as deprecated. π©removed_from( MODULE )β Available in version2.32and above. Takes a module name as an argument, returns the first perl version where that module was removed from core. Returnsundefif the given module was never in core or remains in core. π«‘removed_from_by_date( MODULE )β Available in version2.32and above. Takes a module name as an argument, returns the first perl version by release date where that module was removed from core. Returnsundefif the given module was never in core or remains in core. πchanges_between( PERL_VERSION, PERL_VERSION )β Available in version2.66and above. Given two perl versions, this returns a list of pairs describing the changes in core module content between them. The list is suitable for storing in a hash. The keys are library names and the values are hashrefs. Each hashref has an entry for one or both of"left"and"right", giving the versions of the library in each of the left and right perl distributions. π
For example, it might return these data (among others) for the difference between 5.008000 and 5.008001:
'Pod::ParseLink' => { left => '1.05', right => '1.06' },
'Pod::ParseUtils' => { left => '0.22', right => '0.3' },
'Pod::Perldoc' => { right => '3.10' },
'Pod::Perldoc::BaseTo' => { right => undef },
This shows us two libraries being updated and two being added, one of which has an undefined version in the right-hand side version. Literally the before-and-after. π
π DATA STRUCTURES π
These are the hash data structures that are available:
%Module::CoreList::versionβ A hash of hashes that is keyed on perl version as indicated in$]. The second level hash ismodule => versionpairs. Note, it is possible for the version of a module to be unspecified, whereby the value is"undef", so use"exists $version{$foo}{$bar}"if thatβs what youβre testing for. Starting with2.10, the special module name"Unicode"refers to the version of the Unicode Character Database bundled with Perl. π¦%Module::CoreList::deltaβ Available in version3.00and above. It is a hash of hashes that is keyed on perl version. Each keyed hash will have the following keys:
delta_from - a previous perl version that the changes are based on
changed - a hash of module/versions that have changed
removed - a hash of modules that have been removed
%Module::CoreList::releasedβ Keyed on perl version, this contains ISO formatted versions of the release dates, as gleaned fromperlhist. ποΈ%Module::CoreList::familiesβ New, in1.96, a hash that clusters known perl releases by their major versions. π―ββοΈ%Module::CoreList::deprecatedβ A hash of hashes keyed on perl version and on module name. If a module is defined, it indicates that that module is deprecated in that perl version and is scheduled for removal from core at some future point. β οΈ%Module::CoreList::upstreamβ A hash that contains information on where patches should be directed for each core module.UPSTREAMindicates where patches should go."undef"implies that this hasnβt been discussed for the module at hand."blead"indicates that the copy of the module in the blead sources is to be considered canonical,"cpan"means that the module on CPAN is to be patched first."first-come"means that blead can be patched freely if it is in sync with the latest release on CPAN. π οΈ%Module::CoreList::bug_trackerβ A hash that contains information on the appropriate bug tracker for each core module.BUGSis an email or url to post bug reports. For modules withUPSTREAM => 'blead', use<mailto:perl5-porters@perl.org>.rt.cpan.orgappears to automatically provide a URL for CPAN modules; any value given here overrides the default:<http://rt.cpan.org/Public/Dist/Display.html?Name=$ModuleName>. π
π CAVEATS π
Module::CoreListcurrently covers the5.000,5.001,5.002,5.003_07,5.004,5.004_05,5.005,5.005_03,5.005_04and5.7.3releases of perl.- All stable releases of perl since
5.6.0are covered. - All development releases of perl since
5.9.0are covered.
Okay but bestie, read the coverage list β this is the actual fine print. π
π HISTORY π
Moved to Changes file. The lore is archived elsewhere, bestie. π
π AUTHOR π
Richard Clamp <richardc@unixbeard.net>
Currently maintained by the perl 5 porters <perl5-porters@perl.org>.
π LICENSE π
Copyright (C) 2002-2009 Richard Clamp. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
π¦ SEE ALSO π¦
corelistModule::Infoperl<http://perlpunks.de/corelist>
Thatβs the whole manual, bestie π. This page is from perl v5.42.3, dated 2026-11-03, and itβs the Module::CoreList(3pm) manpage β periodt. π«Άβ¨
π¦ where this page comes from
- alpine 3.24: perl-doc 5.42.3-r0 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms