phpMan > man > Module::CoreList

Markdown | JSON | MCP    

NAME
    Module::CoreList - what modules shipped with versions of perl

SYNOPSIS
     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 provides information on which core and dual-life modules shipped with each
    version of perl.

    It provides a number of mechanisms for querying this information.

    There is a utility called corelist 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.

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 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. 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 version 2.99 and above.

        Returns true if MODULE was 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 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.

    "deprecated_in( MODULE )"
        Available in version 2.77 and above.

        Returns the first perl version where the MODULE was marked as deprecated. Returns "undef" if
        the MODULE has not been marked as deprecated.

    "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.

    "changes_between( PERL_VERSION, PERL_VERSION )"
        Available in version 2.66 and 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.

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 is
        module => version pairs.

        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 with 2.10, the special module name "Unicode" refers to the version of the Unicode
        Character Database bundled with Perl.

    %Module::CoreList::delta
        Available in version 3.00 and 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
        from perlhist.

    %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
        <mailto:perl5-porters AT 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>

CAVEATS
    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 and 5.7.3 releases of perl.

    All stable releases of perl since 5.6.0 are covered.

    All development releases of perl since 5.9.0 are covered.

HISTORY
    Moved to Changes file.

AUTHOR
    Richard Clamp <richardc AT unixbeard.net>

    Currently maintained by the perl 5 porters <perl5-porters AT 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
    corelist, Module::Info, perl, <http://perlpunks.de/corelist>

Module::CoreList
NAME SYNOPSIS DESCRIPTION FUNCTIONS API DATA STRUCTURES CAVEATS HISTORY AUTHOR LICENSE SEE ALSO

Generated by phpMan v3.7.7 Author: Che Dong Under GNU General Public License
2026-06-10 06:46 @216.73.217.62
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top