{
    "mode": "perldoc",
    "parameter": "Module::CoreList",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/perldoc/Module%3A%3ACoreList/json",
    "generated": "2026-06-09T11:35:55Z",
    "synopsis": "use Module::CoreList;\nprint $Module::CoreList::version{5.00503}{CPAN}; # prints 1.48\nprint Module::CoreList->firstrelease('File::Spec');\n# prints 5.00405\nprint Module::CoreList->firstreleasebydate('File::Spec');\n# prints 5.005\nprint Module::CoreList->firstrelease('File::Spec', 0.82);\n# prints 5.006001\nif (Module::CoreList::iscore('File::Spec')) {\nprint \"File::Spec is a core module\\n\";\n}\nprint join ', ', Module::CoreList->findmodules(qr/Data/);\n# prints 'Data::Dumper'\nprint join ', ',\nModule::CoreList->findmodules(qr/test::h.*::.*s/i, 5.008008);\n# prints 'Test::Harness::Assert, Test::Harness::Straps'\nprint join \", \", @{ $Module::CoreList::families{5.005} };\n# prints \"5.005, 5.00503, 5.00504\"",
    "sections": {
        "NAME": {
            "content": "Module::CoreList - what modules shipped with versions of perl\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "use Module::CoreList;\n\nprint $Module::CoreList::version{5.00503}{CPAN}; # prints 1.48\n\nprint Module::CoreList->firstrelease('File::Spec');\n# prints 5.00405\n\nprint Module::CoreList->firstreleasebydate('File::Spec');\n# prints 5.005\n\nprint Module::CoreList->firstrelease('File::Spec', 0.82);\n# prints 5.006001\n\nif (Module::CoreList::iscore('File::Spec')) {\nprint \"File::Spec is a core module\\n\";\n}\n\nprint join ', ', Module::CoreList->findmodules(qr/Data/);\n# prints 'Data::Dumper'\nprint join ', ',\nModule::CoreList->findmodules(qr/test::h.*::.*s/i, 5.008008);\n# prints 'Test::Harness::Assert, Test::Harness::Straps'\n\nprint join \", \", @{ $Module::CoreList::families{5.005} };\n# prints \"5.005, 5.00503, 5.00504\"\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "Module::CoreList provides information on which core and dual-life modules shipped with each\nversion of perl.\n\nIt provides a number of mechanisms for querying this information.\n\nThere is a utility called corelist provided with this module which is a convenient way of\nquerying from the command-line.\n\nThere is a functional programming API available for programmers to query information.\n\nProgrammers may also query the contained hash structures to find relevant information.\n",
            "subsections": []
        },
        "FUNCTIONS API": {
            "content": "These are the functions that are available, they may either be called as functions or class\nmethods:\n\nModule::CoreList::firstrelease('File::Spec'); # as a function\n\nModule::CoreList->firstrelease('File::Spec'); # class method\n\n\"firstrelease( MODULE )\"\nBehaviour since version 2.11\n\nRequires a MODULE name as an argument, returns the perl version when that module first\nappeared in core as ordered by perl version number or undef ( in scalar context ) or an\nempty list ( in list context ) if that module is not in core.\n\n\"firstreleasebydate( MODULE )\"\nRequires a MODULE name as an argument, returns the perl version when that module first\nappeared in core as ordered by release date or undef ( in scalar context ) or an empty list\n( in list context ) if that module is not in core.\n\n\"findmodules( REGEX, [ LIST OF PERLS ] )\"\nTakes a regex as an argument, returns a list of modules that match the regex given. If only\na regex is provided applies to all modules in all perl versions. Optionally you may provide\na list of perl versions to limit the regex search.\n\n\"findversion( PERLVERSION )\"\nTakes a perl version as an argument. Upon successful completion, returns a reference to a\nhash. Each element of that hash has a key which is the name of a module (*e.g.,*\n'File::Path') shipped with that version of perl and a value which is the version number\n(*e.g.,* '2.09') of that module which shipped with that version of perl . Returns \"undef\"\notherwise.\n\n\"iscore( MODULE, [ MODULEVERSION, [ PERLVERSION ] ] )\"\nAvailable in version 2.99 and above.\n\nReturns true if MODULE was bundled with the specified version of Perl. You can optionally\nspecify a minimum version of the module, and can also specify a version of Perl. If a\nversion of Perl isn't specified, \"iscore()\" will use the numeric version of Perl that is\nrunning (ie $]).\n\nIf you want to specify the version of Perl, but don't care about the version of the module,\npass \"undef\" for the module version:\n\n\"isdeprecated( MODULE, PERLVERSION )\"\nAvailable in version 2.22 and above.\n\nReturns true if MODULE is marked as deprecated in PERLVERSION. If PERLVERSION is omitted,\nit defaults to the current version of Perl.\n\n\"deprecatedin( MODULE )\"\nAvailable in version 2.77 and above.\n\nReturns the first perl version where the MODULE was marked as deprecated. Returns \"undef\" if\nthe MODULE has not been marked as deprecated.\n\n\"removedfrom( MODULE )\"\nAvailable in version 2.32 and above\n\nTakes a module name as an argument, returns the first perl version where that module was\nremoved from core. Returns undef if the given module was never in core or remains in core.\n\n\"removedfrombydate( MODULE )\"\nAvailable in version 2.32 and above\n\nTakes a module name as an argument, returns the first perl version by release date where\nthat module was removed from core. Returns undef if the given module was never in core or\nremains in core.\n\n\"changesbetween( PERLVERSION, PERLVERSION )\"\nAvailable in version 2.66 and above.\n\nGiven two perl versions, this returns a list of pairs describing the changes in core module\ncontent between them. The list is suitable for storing in a hash. The keys are library names\nand the values are hashrefs. Each hashref has an entry for one or both of \"left\" and\n\"right\", giving the versions of the library in each of the left and right perl\ndistributions.\n\nFor example, it might return these data (among others) for the difference between 5.008000\nand 5.008001:\n\n'Pod::ParseLink'  => { left => '1.05', right => '1.06' },\n'Pod::ParseUtils' => { left => '0.22', right => '0.3'  },\n'Pod::Perldoc'    => {                 right => '3.10' },\n'Pod::Perldoc::BaseTo' => {            right => undef  },\n\nThis shows us two libraries being updated and two being added, one of which has an undefined\nversion in the right-hand side version.\n",
            "subsections": []
        },
        "DATA STRUCTURES": {
            "content": "These are the hash data structures that are available:\n\n%Module::CoreList::version\nA hash of hashes that is keyed on perl version as indicated in $]. The second level hash is\nmodule => version pairs.\n\nNote, it is possible for the version of a module to be unspecified, whereby the value is\n\"undef\", so use \"exists $version{$foo}{$bar}\" if that's what you're testing for.\n\nStarting with 2.10, the special module name \"Unicode\" refers to the version of the Unicode\nCharacter Database bundled with Perl.\n\n%Module::CoreList::delta\nAvailable in version 3.00 and above.\n\nIt is a hash of hashes that is keyed on perl version. Each keyed hash will have the\nfollowing keys:\n\ndeltafrom - a previous perl version that the changes are based on\nchanged    - a hash of module/versions that have changed\nremoved    - a hash of modules that have been removed\n\n%Module::CoreList::released\nKeyed on perl version this contains ISO formatted versions of the release dates, as gleaned\nfrom perlhist.\n\n%Module::CoreList::families\nNew, in 1.96, a hash that clusters known perl releases by their major versions.\n\n%Module::CoreList::deprecated\nA hash of hashes keyed on perl version and on module name. If a module is defined it\nindicates that that module is deprecated in that perl version and is scheduled for removal\nfrom core at some future point.\n\n%Module::CoreList::upstream\nA hash that contains information on where patches should be directed for each core module.\n\nUPSTREAM indicates where patches should go. \"undef\" implies that this hasn't been discussed\nfor the module at hand. \"blead\" indicates that the copy of the module in the blead sources\nis to be considered canonical, \"cpan\" means that the module on CPAN is to be patched first.\n\"first-come\" means that blead can be patched freely if it is in sync with the latest release\non CPAN.\n\n%Module::CoreList::bugtracker\nA hash that contains information on the appropriate bug tracker for each core module.\n\nBUGS is an email or url to post bug reports. For modules with UPSTREAM => 'blead', use\n<mailto:perl5-porters@perl.org>. rt.cpan.org appears to automatically provide a URL for CPAN\nmodules; any value given here overrides the default:\n<http://rt.cpan.org/Public/Dist/Display.html?Name=$ModuleName>\n",
            "subsections": []
        },
        "CAVEATS": {
            "content": "Module::CoreList currently covers the 5.000, 5.001, 5.002, 5.00307, 5.004, 5.00405, 5.005,\n5.00503, 5.00504 and 5.7.3 releases of perl.\n\nAll stable releases of perl since 5.6.0 are covered.\n\nAll development releases of perl since 5.9.0 are covered.\n",
            "subsections": []
        },
        "HISTORY": {
            "content": "Moved to Changes file.\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Richard Clamp <richardc@unixbeard.net>\n\nCurrently maintained by the perl 5 porters <perl5-porters@perl.org>.\n",
            "subsections": []
        },
        "LICENSE": {
            "content": "Copyright (C) 2002-2009 Richard Clamp. All Rights Reserved.\n\nThis module is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "corelist, Module::Info, perl, <http://perlpunks.de/corelist>\n",
            "subsections": []
        }
    },
    "summary": "Module::CoreList - what modules shipped with versions of perl",
    "flags": [],
    "examples": [],
    "see_also": []
}