Module::CoreList - what modules shipped with versions of perl
use Module::CoreList;print $Module::CoreList::version{5.00503}{CPAN}; # prints 1.48print Module::CoreList->first_release('File::Spec'); # prints 5.00405print Module::CoreList->first_release_by_date('File::Spec'); # prints 5.005print Module::CoreList->first_release('File::Spec', 0.82); # prints 5.006001print 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"
Module::CoreList provides information on which core and dual-life modules shipped with each version ofperl.
It provides a number of mechanisms for querying this information.
There is a utility calledcorelist provided with this module which is a convenient way of querying from the command-line.
There is a functional programming API available for programmers to query information.
Programmers may also query the contained hash structures to find relevant information.
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 functionModule::CoreList->first_release('File::Spec'); # class method
first_release( MODULE )
Behaviour since version 2.11
Requires a MODULE name as an argument, returns the perl version when that module first appeared in core as ordered by perl version number or undef ( in scalar context ) or an empty list ( in list context ) if that module is not in core.
first_release_by_date( MODULE )
Requires a MODULE name as an argument, returns the perl version when that module first appeared in core as ordered by release date or undef ( 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 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. Returns that perl version if it exists orundef
otherwise.
is_deprecated( MODULE, PERL_VERSION )
Available in version 2.22 and above.
Returns true if MODULE is marked as deprecated in PERL_VERSION. If PERL_VERSION is omitted, it defaults to the current version of Perl.
removed_from( MODULE )
Available in version 2.32 and above
Takes a module name as an argument, returns the first perl version where that module was removed from core. Returns undef if the given module was never in core or remains in core.
removed_from_by_date( MODULE )
Available in version 2.32 and above
Takes a module name as an argument, returns the first perl version by release date where that module was removed from core. Returns undef if the given module was never in core or remains in core.
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 is module => version pairs.
Note, it is possible for the version of a module to be unspecified, whereby the value isundef
, so useexists $version{$foo}{$bar}
if that's what you're testing for.
Starting with 2.10, the special module nameUnicode
refers to the version of the Unicode Character Database bundled with Perl.
%Module::CoreList::released
Keyed on perl version this contains ISO formatted versions of the release dates, as gleaned fromperlhist.
%Module::CoreList::families
New, in 1.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.
UPSTREAM indicates 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.
BUGS is an email or url to post bug reports. For modules with UPSTREAM => 'blead', use perl5-porters@perl.org. rt.cpan.org appears 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
Module::CoreList currently covers the 5.000, 5.001, 5.002, 5.003_07, 5.004, 5.004_05, 5.005, 5.005_03, 5.005_04, 5.6.0, 5.6.1, 5.6.2, 5.7.3, 5.8.0, 5.8.1, 5.8.2, 5.8.3, 5.8.4, 5.8.5, 5.8.6, 5.8.7, 5.8.8, 5.8.9, 5.9.0, 5.9.1, 5.9.2, 5.9.3, 5.9.4, 5.9.5, 5.10.0, 5.10.1, 5.11.0, 5.11.1, 5.11.2, 5.11.3, 5.11.4, 5.11.5, 5.12.0, 5.12.1, 5.12.2, 5.12.3, 5.13.0, 5.13.1, 5.13.2, 5.13.3, 5.13.4, 5.13.5, 5.13.6, 5.13.7, 5.13.8, 5.13.9, 5.13.10, 5.13.11, 5.14.0 and 5.14.1 releases of perl.
Moved to Changes file.
Richard Clamp <richardc@unixbeard.net>
Currently maintained by the perl 5 porters <perl5-porters@perl.org>.
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.
Perldoc Browser is maintained by Dan Book (DBOOK). Please contact him via theGitHub issue tracker oremail regarding any issues with the site itself, search, or rendering of documentation.
The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via thePerl issue tracker, themailing list, orIRC to report any issues with the contents or format of the documentation.