{
    "content": [
        {
            "type": "text",
            "text": "# perlmodlib (man)\n\n## NAME\n\nperlmodlib - constructing new Perl modules and finding existing ones\n\n## Sections\n\n- **NAME**\n- **THE PERL MODULE LIBRARY** (3 subsections)\n- **CPAN** (11 subsections)\n- **NOTE**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "perlmodlib",
        "section": "",
        "mode": "man",
        "summary": "perlmodlib - constructing new Perl modules and finding existing ones",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "THE PERL MODULE LIBRARY",
                "lines": 11,
                "subsections": [
                    {
                        "name": "Pragmatic Modules",
                        "lines": 124
                    },
                    {
                        "name": "Standard Modules",
                        "lines": 1485
                    },
                    {
                        "name": "Extension Modules",
                        "lines": 9
                    }
                ]
            },
            {
                "name": "CPAN",
                "lines": 68,
                "subsections": [
                    {
                        "name": "Africa",
                        "lines": 17
                    },
                    {
                        "name": "Asia",
                        "lines": 103
                    },
                    {
                        "name": "Europe",
                        "lines": 243
                    },
                    {
                        "name": "North America",
                        "lines": 128
                    },
                    {
                        "name": "Oceania",
                        "lines": 26
                    },
                    {
                        "name": "South America",
                        "lines": 12
                    },
                    {
                        "name": "RSYNC Mirrors",
                        "lines": 94
                    },
                    {
                        "name": "Modules: Creation, Use, and Abuse",
                        "lines": 17
                    },
                    {
                        "name": "Guidelines for Module Creation",
                        "lines": 252
                    },
                    {
                        "name": "Guidelines for Converting Perl 4 Library Scripts into Modules",
                        "lines": 35
                    },
                    {
                        "name": "Guidelines for Reusing Application Code",
                        "lines": 19
                    }
                ]
            },
            {
                "name": "NOTE",
                "lines": 14,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "perlmodlib - constructing new Perl modules and finding existing ones\n",
                "subsections": []
            },
            "THE PERL MODULE LIBRARY": {
                "content": "Many modules are included in the Perl distribution.  These are described below, and all end\nin .pm.  You may discover compiled library files (usually ending in .so) or small pieces of\nmodules to be autoloaded (ending in .al); these were automatically generated by the\ninstallation process.  You may also discover files in the library directory that end in\neither .pl or .ph.  These are old libraries supplied so that old programs that use them still\nrun.  The .pl files will all eventually be converted into standard modules, and the .ph files\nmade by h2ph will probably end up as extension modules made by h2xs.  (Some .ph values may\nalready be available through the POSIX, Errno, or Fcntl modules.)  The pl2pm file in the\ndistribution may help in your conversion, but it's just a mechanical process and therefore\nfar from bulletproof.\n",
                "subsections": [
                    {
                        "name": "Pragmatic Modules",
                        "content": "They work somewhat like compiler directives (pragmata) in that they tend to affect the\ncompilation of your program, and thus will usually work well only when used within a \"use\",\nor \"no\".  Most of these are lexically scoped, so an inner BLOCK may countermand them by\nsaying:\n\nno integer;\nno strict 'refs';\nno warnings;\n\nwhich lasts until the end of that BLOCK.\n\nSome pragmas are lexically scoped--typically those that affect the $^H hints variable.\nOthers affect the current package instead, like \"use vars\" and \"use subs\", which allow you to\npredeclare a variables or subroutines within a particular file rather than just a block.\nSuch declarations are effective for the entire file for which they were declared.  You cannot\nrescind them with \"no vars\" or \"no subs\".\n\nThe following pragmas are defined (and have their own documentation).\n\nattributes  Get/set subroutine or variable attributes\n\nautodie     Replace functions with ones that succeed or die with lexical scope\n\nautodie::exception\nExceptions from autodying functions.\n\nautodie::exception::system\nExceptions from autodying system().\n\nautodie::hints\nProvide hints about user subroutines to autodie\n\nautodie::skip\nSkip a package when throwing autodie exceptions\n\nautouse     Postpone load of modules until a function is used\n\nbase        Establish an ISA relationship with base classes at compile time\n\nbigint      Transparent BigInteger support for Perl\n\nbignum      Transparent BigNumber support for Perl\n\nbigrat      Transparent BigNumber/BigRational support for Perl\n\nblib        Use MakeMaker's uninstalled version of a package\n\nbytes       Expose the individual bytes of characters\n\ncharnames   Access to Unicode character names and named character sequences; also define\ncharacter names\n\nconstant    Declare constants\n\ndeprecate   Perl pragma for deprecating the inclusion of a module in core\n\ndiagnostics Produce verbose warning diagnostics\n\nencoding    Allows you to write your script in non-ASCII and non-UTF-8\n\nencoding::warnings\nWarn on implicit encoding conversions\n\nexperimental\nExperimental features made easy\n\nfeature     Enable new features\n\nfields      Compile-time class fields\n\nfiletest    Control the filetest permission operators\n\nif          \"use\" a Perl module if a condition holds\n\ninteger     Use integer arithmetic instead of floating point\n\nless        Request less of something\n\nlib         Manipulate @INC at compile time\n\nlocale      Use or avoid POSIX locales for built-in operations\n\nmro         Method Resolution Order\n\nok          Alternative to Test::More::useok\n\nopen        Set default PerlIO layers for input and output\n\nops         Restrict unsafe operations when compiling\n\noverload    Package for overloading Perl operations\n\noverloading Lexically control overloading\n\nparent      Establish an ISA relationship with base classes at compile time\n\nre          Alter regular expression behaviour\n\nsigtrap     Enable simple signal handling\n\nsort        Control sort() behaviour\n\nstrict      Restrict unsafe constructs\n\nsubs        Predeclare subroutine names\n\nthreads     Perl interpreter-based threads\n\nthreads::shared\nPerl extension for sharing data structures between threads\n\nutf8        Enable/disable UTF-8 (or UTF-EBCDIC) in source code\n\nvars        Predeclare global variable names\n\nversion     Perl extension for Version Objects\n\nvmsish      Control VMS-specific language features\n\nwarnings    Control optional warnings\n\nwarnings::register\nWarnings import function\n"
                    },
                    {
                        "name": "Standard Modules",
                        "content": "Standard, bundled modules are all expected to behave in a well-defined manner with respect to\nnamespace pollution because they use the Exporter module.  See their own documentation for\ndetails.\n\nIt's possible that not all modules listed below are installed on your system. For example,\nthe GDBMFile module will not be installed if you don't have the gdbm library.\n\nAmiga::ARexx\nPerl extension for ARexx support\n\nAmiga::Exec Perl extension for low level amiga support\n\nAnyDBMFile Provide framework for multiple DBMs\n\nApp::Cpan   Easily interact with CPAN from the command line\n\nApp::Prove  Implements the \"prove\" command.\n\nApp::Prove::State\nState storage for the \"prove\" command.\n\nApp::Prove::State::Result\nIndividual test suite results.\n\nApp::Prove::State::Result::Test\nIndividual test results.\n\nArchive::Tar\nModule for manipulations of tar archives\n\nArchive::Tar::File\nA subclass for in-memory extracted file from Archive::Tar\n\nAttribute::Handlers\nSimpler definition of attribute handlers\n\nAutoLoader  Load subroutines only on demand\n\nAutoSplit   Split a package for autoloading\n\nB           The Perl Compiler Backend\n\nB::Concise  Walk Perl syntax tree, printing concise info about ops\n\nB::Deparse  Perl compiler backend to produce perl code\n\nB::Opprivate\nOP opprivate flag definitions\n\nB::Showlex  Show lexical variables used in functions or files\n\nB::Terse    Walk Perl syntax tree, printing terse info about ops\n\nB::Xref     Generates cross reference reports for Perl programs\n\nBenchmark   Benchmark running times of Perl code\n\n\"IO::Socket::IP\"\nFamily-neutral IP socket supporting both IPv4 and IPv6\n\n\"Socket\"    Networking constants and support functions\n\nCORE        Namespace for Perl's core routines\n\nCPAN        Query, download and build perl modules from CPAN sites\n\nCPAN::API::HOWTO\nA recipe book for programming with CPAN.pm\n\nCPAN::Debug Internal debugging for CPAN.pm\n\nCPAN::Distroprefs\nRead and match distroprefs\n\nCPAN::FirstTime\nUtility for CPAN::Config file Initialization\n\nCPAN::HandleConfig\nInternal configuration handling for CPAN.pm\n\nCPAN::Kwalify\nInterface between CPAN.pm and Kwalify.pm\n\nCPAN::Meta  The distribution metadata for a CPAN dist\n\nCPAN::Meta::Converter\nConvert CPAN distribution metadata structures\n\nCPAN::Meta::Feature\nAn optional feature provided by a CPAN distribution\n\nCPAN::Meta::History\nHistory of CPAN Meta Spec changes\n\nCPAN::Meta::History::Meta10\nVersion 1.0 metadata specification for META.yml\n\nCPAN::Meta::History::Meta11\nVersion 1.1 metadata specification for META.yml\n\nCPAN::Meta::History::Meta12\nVersion 1.2 metadata specification for META.yml\n\nCPAN::Meta::History::Meta13\nVersion 1.3 metadata specification for META.yml\n\nCPAN::Meta::History::Meta14\nVersion 1.4 metadata specification for META.yml\n\nCPAN::Meta::Merge\nMerging CPAN Meta fragments\n\nCPAN::Meta::Prereqs\nA set of distribution prerequisites by phase and type\n\nCPAN::Meta::Requirements\nA set of version requirements for a CPAN dist\n\nCPAN::Meta::Spec\nSpecification for CPAN distribution metadata\n\nCPAN::Meta::Validator\nValidate CPAN distribution metadata structures\n\nCPAN::Meta::YAML\nRead and write a subset of YAML for CPAN Meta files\n\nCPAN::Nox   Wrapper around CPAN.pm without using any XS module\n\nCPAN::Plugin\nBase class for CPAN shell extensions\n\nCPAN::Plugin::Specfile\nProof of concept implementation of a trivial CPAN::Plugin\n\nCPAN::Queue Internal queue support for CPAN.pm\n\nCPAN::Tarzip\nInternal handling of tar archives for CPAN.pm\n\nCPAN::Version\nUtility functions to compare CPAN versions\n\nCarp        Alternative warn and die for modules\n\nClass::Struct\nDeclare struct-like datatypes as Perl classes\n\nCompress::Raw::Bzip2\nLow-Level Interface to bzip2 compression library\n\nCompress::Raw::Zlib\nLow-Level Interface to zlib compression library\n\nCompress::Zlib\nInterface to zlib compression library\n\nConfig      Access Perl configuration information\n\nConfig::Extensions\nHash lookup of which core extensions were built.\n\nConfig::Perl::V\nStructured data retrieval of perl -V output\n\nCwd         Get pathname of current working directory\n\nDB          Programmatic interface to the Perl debugging API\n\nDBMFilter  Filter DBM keys/values\n\nDBMFilter::compress\nFilter for DBMFilter\n\nDBMFilter::encode\nFilter for DBMFilter\n\nDBMFilter::int32\nFilter for DBMFilter\n\nDBMFilter::null\nFilter for DBMFilter\n\nDBMFilter::utf8\nFilter for DBMFilter\n\nDBFile     Perl5 access to Berkeley DB version 1.x\n\nData::Dumper\nStringified perl data structures, suitable for both printing and \"eval\"\n\nDevel::PPPort\nPerl/Pollution/Portability\n\nDevel::Peek A data debugging tool for the XS programmer\n\nDevel::SelfStubber\nGenerate stubs for a SelfLoading module\n\nDigest      Modules that calculate message digests\n\nDigest::MD5 Perl interface to the MD5 Algorithm\n\nDigest::SHA Perl extension for SHA-1/224/256/384/512\n\nDigest::base\nDigest base class\n\nDigest::file\nCalculate digests of files\n\nDirHandle   (obsolete) supply object methods for directory handles\n\nDumpvalue   Provides screen dump of Perl data.\n\nDynaLoader  Dynamically load C libraries into Perl code\n\nEncode      Character encodings in Perl\n\nEncode::Alias\nAlias definitions to encodings\n\nEncode::Byte\nSingle Byte Encodings\n\nEncode::CJKConstants\nInternally used by Encode::??::ISO2022*\n\nEncode::CN  China-based Chinese Encodings\n\nEncode::CN::HZ\nInternally used by Encode::CN\n\nEncode::Config\nInternally used by Encode\n\nEncode::EBCDIC\nEBCDIC Encodings\n\nEncode::Encoder\nObject Oriented Encoder\n\nEncode::Encoding\nEncode Implementation Base Class\n\nEncode::GSM0338\nETSI GSM 03.38 Encoding\n\nEncode::Guess\nGuesses encoding from data\n\nEncode::JP  Japanese Encodings\n\nEncode::JP::H2Z\nInternally used by Encode::JP::2022JP*\n\nEncode::JP::JIS7\nInternally used by Encode::JP\n\nEncode::KR  Korean Encodings\n\nEncode::KR::2022KR\nInternally used by Encode::KR\n\nEncode::MIME::Header\nMIME encoding for an unstructured email header\n\nEncode::MIME::Name\nInternally used by Encode\n\nEncode::PerlIO\nA detailed document on Encode and PerlIO\n\nEncode::Supported\nEncodings supported by Encode\n\nEncode::Symbol\nSymbol Encodings\n\nEncode::TW  Taiwan-based Chinese Encodings\n\nEncode::Unicode\nVarious Unicode Transformation Formats\n\nEncode::Unicode::UTF7\nUTF-7 encoding\n\nEnglish     Use nice English (or awk) names for ugly punctuation variables\n\nEnv         Perl module that imports environment variables as scalars or arrays\n\nErrno       System errno constants\n\nExporter    Implements default import method for modules\n\nExporter::Heavy\nExporter guts\n\nExtUtils::CBuilder\nCompile and link C code for Perl modules\n\nExtUtils::CBuilder::Platform::Windows\nBuilder class for Windows platforms\n\nExtUtils::Command\nUtilities to replace common UNIX commands in Makefiles etc.\n\nExtUtils::Command::MM\nCommands for the MM's to use in Makefiles\n\nExtUtils::Constant\nGenerate XS code to import C header constants\n\nExtUtils::Constant::Base\nBase class for ExtUtils::Constant objects\n\nExtUtils::Constant::Utils\nHelper functions for ExtUtils::Constant\n\nExtUtils::Constant::XS\nGenerate C code for XS modules' constants.\n\nExtUtils::Embed\nUtilities for embedding Perl in C/C++ applications\n\nExtUtils::Install\nInstall files from here to there\n\nExtUtils::Installed\nInventory management of installed modules\n\nExtUtils::Liblist\nDetermine libraries to use and how to use them\n\nExtUtils::MM\nOS adjusted ExtUtils::MakeMaker subclass\n\nExtUtils::MMAIX\nAIX specific subclass of ExtUtils::MMUnix\n\nExtUtils::MMAny\nPlatform-agnostic MM methods\n\nExtUtils::MMBeOS\nMethods to override UN*X behaviour in ExtUtils::MakeMaker\n\nExtUtils::MMCygwin\nMethods to override UN*X behaviour in ExtUtils::MakeMaker\n\nExtUtils::MMDOS\nDOS specific subclass of ExtUtils::MMUnix\n\nExtUtils::MMDarwin\nSpecial behaviors for OS X\n\nExtUtils::MMMacOS\nOnce produced Makefiles for MacOS Classic\n\nExtUtils::MMNW5\nMethods to override UN*X behaviour in ExtUtils::MakeMaker\n\nExtUtils::MMOS2\nMethods to override UN*X behaviour in ExtUtils::MakeMaker\n\nExtUtils::MMOS390\nOS390 specific subclass of ExtUtils::MMUnix\n\nExtUtils::MMQNX\nQNX specific subclass of ExtUtils::MMUnix\n\nExtUtils::MMUWIN\nU/WIN specific subclass of ExtUtils::MMUnix\n\nExtUtils::MMUnix\nMethods used by ExtUtils::MakeMaker\n\nExtUtils::MMVMS\nMethods to override UN*X behaviour in ExtUtils::MakeMaker\n\nExtUtils::MMVOS\nVOS specific subclass of ExtUtils::MMUnix\n\nExtUtils::MMWin32\nMethods to override UN*X behaviour in ExtUtils::MakeMaker\n\nExtUtils::MMWin95\nMethod to customize MakeMaker for Win9X\n\nExtUtils::MY\nExtUtils::MakeMaker subclass for customization\n\nExtUtils::MakeMaker\nCreate a module Makefile\n\nExtUtils::MakeMaker::Config\nWrapper around Config.pm\n\nExtUtils::MakeMaker::FAQ\nFrequently Asked Questions About MakeMaker\n\nExtUtils::MakeMaker::Locale\nBundled Encode::Locale\n\nExtUtils::MakeMaker::Tutorial\nWriting a module with MakeMaker\n\nExtUtils::Manifest\nUtilities to write and check a MANIFEST file\n\nExtUtils::Miniperl\nWrite the C code for miniperlmain.c and perlmain.c\n\nExtUtils::Mkbootstrap\nMake a bootstrap file for use by DynaLoader\n\nExtUtils::Mksymlists\nWrite linker options files for dynamic extension\n\nExtUtils::PL2Bat\nBatch file creation to run perl scripts on Windows\n\nExtUtils::Packlist\nManage .packlist files\n\nExtUtils::ParseXS\nConverts Perl XS code into C code\n\nExtUtils::ParseXS::Constants\nInitialization values for some globals\n\nExtUtils::ParseXS::Eval\nClean package to evaluate code in\n\nExtUtils::ParseXS::Utilities\nSubroutines used with ExtUtils::ParseXS\n\nExtUtils::Typemaps\nRead/Write/Modify Perl/XS typemap files\n\nExtUtils::Typemaps::Cmd\nQuick commands for handling typemaps\n\nExtUtils::Typemaps::InputMap\nEntry in the INPUT section of a typemap\n\nExtUtils::Typemaps::OutputMap\nEntry in the OUTPUT section of a typemap\n\nExtUtils::Typemaps::Type\nEntry in the TYPEMAP section of a typemap\n\nExtUtils::XSSymSet\nKeep sets of symbol names palatable to the VMS linker\n\nExtUtils::testlib\nAdd blib/* directories to @INC\n\nFatal       Replace functions with equivalents which succeed or die\n\nFcntl       Load the C Fcntl.h defines\n\nFile::Basename\nParse file paths into directory, filename and suffix.\n\nFile::Compare\nCompare files or filehandles\n\nFile::Copy  Copy files or filehandles\n\nFile::DosGlob\nDOS like globbing and then some\n\nFile::Fetch A generic file fetching mechanism\n\nFile::Find  Traverse a directory tree.\n\nFile::Glob  Perl extension for BSD glob routine\n\nFile::GlobMapper\nExtend File Glob to Allow Input and Output Files\n\nFile::Path  Create or remove directory trees\n\nFile::Spec  Portably perform operations on file names\n\nFile::Spec::AmigaOS\nFile::Spec for AmigaOS\n\nFile::Spec::Cygwin\nMethods for Cygwin file specs\n\nFile::Spec::Epoc\nMethods for Epoc file specs\n\nFile::Spec::Functions\nPortably perform operations on file names\n\nFile::Spec::Mac\nFile::Spec for Mac OS (Classic)\n\nFile::Spec::OS2\nMethods for OS/2 file specs\n\nFile::Spec::Unix\nFile::Spec for Unix, base for other File::Spec modules\n\nFile::Spec::VMS\nMethods for VMS file specs\n\nFile::Spec::Win32\nMethods for Win32 file specs\n\nFile::Temp  Return name and handle of a temporary file safely\n\nFile::stat  By-name interface to Perl's built-in stat() functions\n\nFileCache   Keep more files open than the system permits\n\nFileHandle  Supply object methods for filehandles\n\nFilter::Simple\nSimplified source filtering\n\nFilter::Util::Call\nPerl Source Filter Utility Module\n\nFindBin     Locate directory of original perl script\n\nGDBMFile   Perl5 access to the gdbm library.\n\nGetopt::Long\nExtended processing of command line options\n\nGetopt::Std Process single-character switches with switch clustering\n\nHTTP::Tiny  A small, simple, correct HTTP/1.1 client\n\nHash::Util  A selection of general-utility hash subroutines\n\nHash::Util::FieldHash\nSupport for Inside-Out Classes\n\nI18N::Collate\nCompare 8-bit scalar data according to the current locale\n\nI18N::LangTags\nFunctions for dealing with RFC3066-style language tags\n\nI18N::LangTags::Detect\nDetect the user's language preferences\n\nI18N::LangTags::List\nTags and names for human languages\n\nI18N::Langinfo\nQuery locale information\n\nIO          Load various IO modules\n\nIO::Compress::Base\nBase Class for IO::Compress modules\n\nIO::Compress::Bzip2\nWrite bzip2 files/buffers\n\nIO::Compress::Deflate\nWrite RFC 1950 files/buffers\n\nIO::Compress::FAQ\nFrequently Asked Questions about IO::Compress\n\nIO::Compress::Gzip\nWrite RFC 1952 files/buffers\n\nIO::Compress::RawDeflate\nWrite RFC 1951 files/buffers\n\nIO::Compress::Zip\nWrite zip files/buffers\n\nIO::Dir     Supply object methods for directory handles\n\nIO::File    Supply object methods for filehandles\n\nIO::Handle  Supply object methods for I/O handles\n\nIO::Pipe    Supply object methods for pipes\n\nIO::Poll    Object interface to system poll call\n\nIO::Seekable\nSupply seek based methods for I/O objects\n\nIO::Select  OO interface to the select system call\n\nIO::Socket  Object interface to socket communications\n\nIO::Socket::INET\nObject interface for AFINET domain sockets\n\nIO::Socket::UNIX\nObject interface for AFUNIX domain sockets\n\nIO::Uncompress::AnyInflate\nUncompress zlib-based (zip, gzip) file/buffer\n\nIO::Uncompress::AnyUncompress\nUncompress gzip, zip, bzip2, zstd, xz, lzma, lzip, lzf or lzop file/buffer\n\nIO::Uncompress::Base\nBase Class for IO::Uncompress modules\n\nIO::Uncompress::Bunzip2\nRead bzip2 files/buffers\n\nIO::Uncompress::Gunzip\nRead RFC 1952 files/buffers\n\nIO::Uncompress::Inflate\nRead RFC 1950 files/buffers\n\nIO::Uncompress::RawInflate\nRead RFC 1951 files/buffers\n\nIO::Uncompress::Unzip\nRead zip files/buffers\n\nIO::Zlib    IO:: style interface to Compress::Zlib\n\nIPC::Cmd    Finding and running system commands made easy\n\nIPC::Msg    SysV Msg IPC object class\n\nIPC::Open2  Open a process for both reading and writing using open2()\n\nIPC::Open3  Open a process for reading, writing, and error handling using open3()\n\nIPC::Semaphore\nSysV Semaphore IPC object class\n\nIPC::SharedMem\nSysV Shared Memory IPC object class\n\nIPC::SysV   System V IPC constants and system calls\n\nInternals   Reserved special namespace for internals related functions\n\nJSON::PP    JSON::XS compatible pure-Perl module.\n\nJSON::PP::Boolean\nDummy module providing JSON::PP::Boolean\n\nList::Util  A selection of general-utility list subroutines\n\nList::Util::XS\nIndicate if List::Util was compiled with a C compiler\n\nLocale::Maketext\nFramework for localization\n\nLocale::Maketext::Cookbook\nRecipes for using Locale::Maketext\n\nLocale::Maketext::Guts\nDeprecated module to load Locale::Maketext utf8 code\n\nLocale::Maketext::GutsLoader\nDeprecated module to load Locale::Maketext utf8 code\n\nLocale::Maketext::Simple\nSimple interface to Locale::Maketext::Lexicon\n\nLocale::Maketext::TPJ13\nArticle about software localization\n\nMIME::Base64\nEncoding and decoding of base64 strings\n\nMIME::QuotedPrint\nEncoding and decoding of quoted-printable strings\n\nMath::BigFloat\nArbitrary size floating point math package\n\nMath::BigInt\nArbitrary size integer/float math package\n\nMath::BigInt::Calc\nPure Perl module to support Math::BigInt\n\nMath::BigInt::FastCalc\nMath::BigInt::Calc with some XS for more speed\n\nMath::BigInt::Lib\nVirtual parent class for Math::BigInt libraries\n\nMath::BigRat\nArbitrary big rational numbers\n\nMath::Complex\nComplex numbers and associated mathematical functions\n\nMath::Trig  Trigonometric functions\n\nMemoize     Make functions faster by trading space for time\n\nMemoize::AnyDBMFile\nGlue to provide EXISTS for AnyDBMFile for Storable use\n\nMemoize::Expire\nPlug-in module for automatic expiration of memoized values\n\nMemoize::ExpireFile\nTest for Memoize expiration semantics\n\nMemoize::ExpireTest\nTest for Memoize expiration semantics\n\nMemoize::NDBMFile\nGlue to provide EXISTS for NDBMFile for Storable use\n\nMemoize::SDBMFile\nGlue to provide EXISTS for SDBMFile for Storable use\n\nMemoize::Storable\nStore Memoized data in Storable database\n\nModule::CoreList\nWhat modules shipped with versions of perl\n\nModule::CoreList::Utils\nWhat utilities shipped with versions of perl\n\nModule::Load\nRuntime require of both modules and files\n\nModule::Load::Conditional\nLooking up module information / loading at runtime\n\nModule::Loaded\nMark modules as loaded or unloaded\n\nModule::Metadata\nGather package and POD information from perl module files\n\nNDBMFile   Tied access to ndbm files\n\nNEXT        Provide a pseudo-class NEXT (et al) that allows method redispatch\n\nNet::Cmd    Network Command class (as used by FTP, SMTP etc)\n\nNet::Config Local configuration data for libnet\n\nNet::Domain Attempt to evaluate the current host's internet name and domain\n\nNet::FTP    FTP Client class\n\nNet::FTP::dataconn\nFTP Client data connection class\n\nNet::NNTP   NNTP Client class\n\nNet::Netrc  OO interface to users netrc file\n\nNet::POP3   Post Office Protocol 3 Client class (RFC1939)\n\nNet::Ping   Check a remote host for reachability\n\nNet::SMTP   Simple Mail Transfer Protocol Client\n\nNet::Time   Time and daytime network client interface\n\nNet::hostent\nBy-name interface to Perl's built-in gethost*() functions\n\nNet::libnetFAQ\nLibnet Frequently Asked Questions\n\nNet::netent By-name interface to Perl's built-in getnet*() functions\n\nNet::protoent\nBy-name interface to Perl's built-in getproto*() functions\n\nNet::servent\nBy-name interface to Perl's built-in getserv*() functions\n\nO           Generic interface to Perl Compiler backends\n\nODBMFile   Tied access to odbm files\n\nOpcode      Disable named opcodes when compiling perl code\n\nPOSIX       Perl interface to IEEE Std 1003.1\n\nParams::Check\nA generic input parsing/checking mechanism.\n\nParse::CPAN::Meta\nParse META.yml and META.json CPAN metadata files\n\nPerl::OSType\nMap Perl operating system names to generic types\n\nPerlIO      On demand loader for PerlIO layers and root of PerlIO::* name space\n\nPerlIO::encoding\nEncoding layer\n\nPerlIO::mmap\nMemory mapped IO\n\nPerlIO::scalar\nIn-memory IO, scalar IO\n\nPerlIO::via Helper class for PerlIO layers implemented in perl\n\nPerlIO::via::QuotedPrint\nPerlIO layer for quoted-printable strings\n\nPod::Checker\nCheck pod documents for syntax errors\n\nPod::Escapes\nFor resolving Pod E<...> sequences\n\nPod::Functions\nGroup Perl's functions a la perlfunc.pod\n\nPod::Html   Module to convert pod files to HTML\n\nPod::Man    Convert POD data to formatted *roff input\n\nPod::ParseLink\nParse an L<> formatting code in POD text\n\nPod::Perldoc\nLook up Perl documentation in Pod format.\n\nPod::Perldoc::BaseTo\nBase for Pod::Perldoc formatters\n\nPod::Perldoc::GetOptsOO\nCustomized option parser for Pod::Perldoc\n\nPod::Perldoc::ToANSI\nRender Pod with ANSI color escapes\n\nPod::Perldoc::ToChecker\nLet Perldoc check Pod for errors\n\nPod::Perldoc::ToMan\nLet Perldoc render Pod as man pages\n\nPod::Perldoc::ToNroff\nLet Perldoc convert Pod to nroff\n\nPod::Perldoc::ToPod\nLet Perldoc render Pod as ... Pod!\n\nPod::Perldoc::ToRtf\nLet Perldoc render Pod as RTF\n\nPod::Perldoc::ToTerm\nRender Pod with terminal escapes\n\nPod::Perldoc::ToText\nLet Perldoc render Pod as plaintext\n\nPod::Perldoc::ToTk\nLet Perldoc use Tk::Pod to render Pod\n\nPod::Perldoc::ToXml\nLet Perldoc render Pod as XML\n\nPod::Simple Framework for parsing Pod\n\nPod::Simple::Checker\nCheck the Pod syntax of a document\n\nPod::Simple::Debug\nPut Pod::Simple into trace/debug mode\n\nPod::Simple::DumpAsText\nDump Pod-parsing events as text\n\nPod::Simple::DumpAsXML\nTurn Pod into XML\n\nPod::Simple::HTML\nConvert Pod to HTML\n\nPod::Simple::HTMLBatch\nConvert several Pod files to several HTML files\n\nPod::Simple::JustPod\nJust the Pod, the whole Pod, and nothing but the Pod\n\nPod::Simple::LinkSection\nRepresent \"section\" attributes of L codes\n\nPod::Simple::Methody\nTurn Pod::Simple events into method calls\n\nPod::Simple::PullParser\nA pull-parser interface to parsing Pod\n\nPod::Simple::PullParserEndToken\nEnd-tokens from Pod::Simple::PullParser\n\nPod::Simple::PullParserStartToken\nStart-tokens from Pod::Simple::PullParser\n\nPod::Simple::PullParserTextToken\nText-tokens from Pod::Simple::PullParser\n\nPod::Simple::PullParserToken\nTokens from Pod::Simple::PullParser\n\nPod::Simple::RTF\nFormat Pod as RTF\n\nPod::Simple::Search\nFind POD documents in directory trees\n\nPod::Simple::SimpleTree\nParse Pod into a simple parse tree\n\nPod::Simple::Subclassing\nWrite a formatter as a Pod::Simple subclass\n\nPod::Simple::Text\nFormat Pod as plaintext\n\nPod::Simple::TextContent\nGet the text content of Pod\n\nPod::Simple::XHTML\nFormat Pod as validating XHTML\n\nPod::Simple::XMLOutStream\nTurn Pod into XML\n\nPod::Text   Convert POD data to formatted text\n\nPod::Text::Color\nConvert POD data to formatted color ASCII text\n\nPod::Text::Overstrike\nConvert POD data to formatted overstrike text\n\nPod::Text::Termcap\nConvert POD data to ASCII text with format escapes\n\nPod::Usage  Extracts POD documentation and shows usage information\n\nSDBMFile   Tied access to sdbm files\n\nSafe        Compile and execute code in restricted compartments\n\nScalar::Util\nA selection of general-utility scalar subroutines\n\nSearch::Dict\nLook - search for key in dictionary file\n\nSelectSaver Save and restore selected file handle\n\nSelfLoader  Load functions only on demand\n\nStorable    Persistence for Perl data structures\n\nSub::Util   A selection of utility subroutines for subs and CODE references\n\nSymbol      Manipulate Perl symbols and their names\n\nSys::Hostname\nTry every conceivable way to get hostname\n\nSys::Syslog Perl interface to the UNIX syslog(3) calls\n\nSys::Syslog::Win32\nWin32 support for Sys::Syslog\n\nTAP::Base   Base class that provides common functionality to TAP::Parser\n\nTAP::Formatter::Base\nBase class for harness output delegates\n\nTAP::Formatter::Color\nRun Perl test scripts with color\n\nTAP::Formatter::Console\nHarness output delegate for default console output\n\nTAP::Formatter::Console::ParallelSession\nHarness output delegate for parallel console output\n\nTAP::Formatter::Console::Session\nHarness output delegate for default console output\n\nTAP::Formatter::File\nHarness output delegate for file output\n\nTAP::Formatter::File::Session\nHarness output delegate for file output\n\nTAP::Formatter::Session\nAbstract base class for harness output delegate\n\nTAP::Harness\nRun test scripts with statistics\n\nTAP::Harness::Env\nParsing harness related environmental variables where appropriate\n\nTAP::Object Base class that provides common functionality to all \"TAP::*\" modules\n\nTAP::Parser Parse TAP output\n\nTAP::Parser::Aggregator\nAggregate TAP::Parser results\n\nTAP::Parser::Grammar\nA grammar for the Test Anything Protocol.\n\nTAP::Parser::Iterator\nBase class for TAP source iterators\n\nTAP::Parser::Iterator::Array\nIterator for array-based TAP sources\n\nTAP::Parser::Iterator::Process\nIterator for process-based TAP sources\n\nTAP::Parser::Iterator::Stream\nIterator for filehandle-based TAP sources\n\nTAP::Parser::IteratorFactory\nFigures out which SourceHandler objects to use for a given Source\n\nTAP::Parser::Multiplexer\nMultiplex multiple TAP::Parsers\n\nTAP::Parser::Result\nBase class for TAP::Parser output objects\n\nTAP::Parser::Result::Bailout\nBailout result token.\n\nTAP::Parser::Result::Comment\nComment result token.\n\nTAP::Parser::Result::Plan\nPlan result token.\n\nTAP::Parser::Result::Pragma\nTAP pragma token.\n\nTAP::Parser::Result::Test\nTest result token.\n\nTAP::Parser::Result::Unknown\nUnknown result token.\n\nTAP::Parser::Result::Version\nTAP syntax version token.\n\nTAP::Parser::Result::YAML\nYAML result token.\n\nTAP::Parser::ResultFactory\nFactory for creating TAP::Parser output objects\n\nTAP::Parser::Scheduler\nSchedule tests during parallel testing\n\nTAP::Parser::Scheduler::Job\nA single testing job.\n\nTAP::Parser::Scheduler::Spinner\nA no-op job.\n\nTAP::Parser::Source\nA TAP source & meta data about it\n\nTAP::Parser::SourceHandler\nBase class for different TAP source handlers\n\nTAP::Parser::SourceHandler::Executable\nStream output from an executable TAP source\n\nTAP::Parser::SourceHandler::File\nStream TAP from a text file.\n\nTAP::Parser::SourceHandler::Handle\nStream TAP from an IO::Handle or a GLOB.\n\nTAP::Parser::SourceHandler::Perl\nStream TAP from a Perl executable\n\nTAP::Parser::SourceHandler::RawTAP\nStream output from raw TAP in a scalar/array ref.\n\nTAP::Parser::YAMLish::Reader\nRead YAMLish data from iterator\n\nTAP::Parser::YAMLish::Writer\nWrite YAMLish data\n\nTerm::ANSIColor\nColor screen output using ANSI escape sequences\n\nTerm::Cap   Perl termcap interface\n\nTerm::Complete\nPerl word completion module\n\nTerm::ReadLine\nPerl interface to various \"readline\" packages.\n\nTest        Provides a simple framework for writing test scripts\n\nTest2       Framework for writing test tools that all work together.\n\nTest2::API  Primary interface for writing Test2 based testing tools.\n\nTest2::API::Breakage\nWhat breaks at what version\n\nTest2::API::Context\nObject to represent a testing context.\n\nTest2::API::Instance\nObject used by Test2::API under the hood\n\nTest2::API::InterceptResult\nRepresentation of a list of events.\n\nTest2::API::InterceptResult::Event\nRepresentation of an event for use in\n\nTest2::API::InterceptResult::Hub\nHub used by InterceptResult.\n\nTest2::API::InterceptResult::Squasher\nEncapsulation of the algorithm that\n\nTest2::API::Stack\nObject to manage a stack of Test2::Hub\n\nTest2::Event\nBase class for events\n\nTest2::Event::Bail\nBailout!\n\nTest2::Event::Diag\nDiag event type\n\nTest2::Event::Encoding\nSet the encoding for the output stream\n\nTest2::Event::Exception\nException event\n\nTest2::Event::Fail\nEvent for a simple failed assertion\n\nTest2::Event::Generic\nGeneric event type.\n\nTest2::Event::Note\nNote event type\n\nTest2::Event::Ok\nOk event type\n\nTest2::Event::Pass\nEvent for a simple passing assertion\n\nTest2::Event::Plan\nThe event of a plan\n\nTest2::Event::Skip\nSkip event type\n\nTest2::Event::Subtest\nEvent for subtest types\n\nTest2::Event::TAP::Version\nEvent for TAP version.\n\nTest2::Event::V2\nSecond generation event.\n\nTest2::Event::Waiting\nTell all procs/threads it is time to be done\n\nTest2::EventFacet\nBase class for all event facets.\n\nTest2::EventFacet::About\nFacet with event details.\n\nTest2::EventFacet::Amnesty\nFacet for assertion amnesty.\n\nTest2::EventFacet::Assert\nFacet representing an assertion.\n\nTest2::EventFacet::Control\nFacet for hub actions and behaviors.\n\nTest2::EventFacet::Error\nFacet for errors that need to be shown.\n\nTest2::EventFacet::Hub\nFacet for the hubs an event passes through.\n\nTest2::EventFacet::Info\nFacet for information a developer might care about.\n\nTest2::EventFacet::Info::Table\nIntermediary representation of a table.\n\nTest2::EventFacet::Meta\nFacet for meta-data\n\nTest2::EventFacet::Parent\nFacet for events contains other events\n\nTest2::EventFacet::Plan\nFacet for setting the plan\n\nTest2::EventFacet::Render\nFacet that dictates how to render an event.\n\nTest2::EventFacet::Trace\nDebug information for events\n\nTest2::Formatter\nNamespace for formatters.\n\nTest2::Formatter::TAP\nStandard TAP formatter\n\nTest2::Hub  The conduit through which all events flow.\n\nTest2::Hub::Interceptor\nHub used by interceptor to grab results.\n\nTest2::Hub::Interceptor::Terminator\nException class used by\n\nTest2::Hub::Subtest\nHub used by subtests\n\nTest2::IPC  Turn on IPC for threading or forking support.\n\nTest2::IPC::Driver\nBase class for Test2 IPC drivers.\n\nTest2::IPC::Driver::Files\nTemp dir + Files concurrency model.\n\nTest2::Tools::Tiny\nTiny set of tools for unfortunate souls who cannot use\n\nTest2::Transition\nTransition notes when upgrading to Test2\n\nTest2::Util Tools used by Test2 and friends.\n\nTest2::Util::ExternalMeta\nAllow third party tools to safely attach meta-data\n\nTest2::Util::Facets2Legacy\nConvert facet data to the legacy event API.\n\nTest2::Util::HashBase\nBuild hash based classes.\n\nTest2::Util::Trace\nLegacy wrapper fro Test2::EventFacet::Trace.\n\nTest::Builder\nBackend for building test libraries\n\nTest::Builder::Formatter\nTest::Builder subclass of Test2::Formatter::TAP\n\nTest::Builder::IO::Scalar\nA copy of IO::Scalar for Test::Builder\n\nTest::Builder::Module\nBase class for test modules\n\nTest::Builder::Tester\nTest testsuites that have been built with\n\nTest::Builder::Tester::Color\nTurn on colour in Test::Builder::Tester\n\nTest::Builder::TodoDiag\nTest::Builder subclass of Test2::Event::Diag\n\nTest::Harness\nRun Perl standard test scripts with statistics\n\nTest::Harness::Beyond\nBeyond make test\n\nTest::More  Yet another framework for writing test scripts\n\nTest::Simple\nBasic utilities for writing tests.\n\nTest::Tester\nEase testing test modules built with Test::Builder\n\nTest::Tester::Capture\nHelp testing test modules built with Test::Builder\n\nTest::Tester::CaptureRunner\nHelp testing test modules built with Test::Builder\n\nTest::Tutorial\nA tutorial about writing really basic tests\n\nTest::use::ok\nAlternative to Test::More::useok\n\nText::Abbrev\nAbbrev - create an abbreviation table from a list\n\nText::Balanced\nExtract delimited text sequences from strings.\n\nText::ParseWords\nParse text into an array of tokens or array of arrays\n\nText::Tabs  Expand and unexpand tabs like unix expand(1) and unexpand(1)\n\nText::Wrap  Line wrapping to form simple paragraphs\n\nThread      Manipulate threads in Perl (for old code only)\n\nThread::Queue\nThread-safe queues\n\nThread::Semaphore\nThread-safe semaphores\n\nTie::Array  Base class for tied arrays\n\nTie::File   Access the lines of a disk file via a Perl array\n\nTie::Handle Base class definitions for tied handles\n\nTie::Hash   Base class definitions for tied hashes\n\nTie::Hash::NamedCapture\nNamed regexp capture buffers\n\nTie::Memoize\nAdd data to hash when needed\n\nTie::RefHash\nUse references as hash keys\n\nTie::Scalar Base class definitions for tied scalars\n\nTie::StdHandle\nBase class definitions for tied handles\n\nTie::SubstrHash\nFixed-table-size, fixed-key-length hashing\n\nTime::HiRes High resolution alarm, sleep, gettimeofday, interval timers\n\nTime::Local Efficiently compute time from local and GMT time\n\nTime::Piece Object Oriented time objects\n\nTime::Seconds\nA simple API to convert seconds to other date values\n\nTime::gmtime\nBy-name interface to Perl's built-in gmtime() function\n\nTime::localtime\nBy-name interface to Perl's built-in localtime() function\n\nTime::tm    Internal object used by Time::gmtime and Time::localtime\n\nUNIVERSAL   Base class for ALL classes (blessed references)\n\nUnicode::Collate\nUnicode Collation Algorithm\n\nUnicode::Collate::CJK::Big5\nWeighting CJK Unified Ideographs\n\nUnicode::Collate::CJK::GB2312\nWeighting CJK Unified Ideographs\n\nUnicode::Collate::CJK::JISX0208\nWeighting JIS KANJI for Unicode::Collate\n\nUnicode::Collate::CJK::Korean\nWeighting CJK Unified Ideographs\n\nUnicode::Collate::CJK::Pinyin\nWeighting CJK Unified Ideographs\n\nUnicode::Collate::CJK::Stroke\nWeighting CJK Unified Ideographs\n\nUnicode::Collate::CJK::Zhuyin\nWeighting CJK Unified Ideographs\n\nUnicode::Collate::Locale\nLinguistic tailoring for DUCET via Unicode::Collate\n\nUnicode::Normalize\nUnicode Normalization Forms\n\nUnicode::UCD\nUnicode character database\n\nUser::grent By-name interface to Perl's built-in getgr*() functions\n\nUser::pwent By-name interface to Perl's built-in getpw*() functions\n\nVMS::DCLsym Perl extension to manipulate DCL symbols\n\nVMS::Filespec\nConvert between VMS and Unix file specification syntax\n\nVMS::Stdio  Standard I/O functions via VMS extensions\n\nWin32       Interfaces to some Win32 API Functions\n\nWin32API::File\nLow-level access to Win32 system API calls for files/dirs.\n\nWin32CORE   Win32 CORE function stubs\n\nXS::APItest Test the perl C API\n\nXS::Typemap Module to test the XS typemaps distributed with perl\n\nXSLoader    Dynamically load C libraries into Perl code\n\nautodie::Scope::Guard\nWrapper class for calling subs at end of scope\n\nautodie::Scope::GuardStack\nHook stack for managing scopes via %^H\n\nautodie::Util\nInternal Utility subroutines for autodie and Fatal\n\nversion::Internals\nPerl extension for Version Objects\n\nTo find out all modules installed on your system, including those without documentation or\noutside the standard release, just use the following command (under the default win32 shell,\ndouble quotes should be used instead of single quotes).\n\n% perl -MFile::Find=find -MFile::Spec::Functions -Tlwe \\\n'find { wanted => sub { print canonpath $ if /\\.pm\\z/ },\nnochdir => 1 }, @INC'\n\n(The -T is here to prevent '.' from being listed in @INC.)  They should all have their own\ndocumentation installed and accessible via your system man(1) command.  If you do not have a\nfind program, you can use the Perl find2perl program instead, which generates Perl code as\noutput you can run through perl.  If you have a man program but it doesn't find your modules,\nyou'll have to fix your manpath.  See perl for details.  If you have no system man command,\nyou might try the perldoc program.\n\nNote also that the command \"perldoc perllocal\" gives you a (possibly incomplete) list of the\nmodules that have been further installed on your system. (The perllocal.pod file is updated\nby the standard MakeMaker install process.)\n"
                    },
                    {
                        "name": "Extension Modules",
                        "content": "Extension modules are written in C (or a mix of Perl and C).  They are usually dynamically\nloaded into Perl if and when you need them, but may also be linked in statically.  Supported\nextension modules include Socket, Fcntl, and POSIX.\n\nMany popular C extension modules do not come bundled (at least, not completely) due to their\nsizes, volatility, or simply lack of time for adequate testing and configuration across the\nmultitude of platforms on which Perl was beta-tested.  You are encouraged to look for them on\nCPAN (described below), or using web search engines like Google or DuckDuckGo.\n"
                    }
                ]
            },
            "CPAN": {
                "content": "CPAN stands for Comprehensive Perl Archive Network; it's a globally replicated trove of Perl\nmaterials, including documentation, style guides, tricks and traps, alternate ports to non-\nUnix systems and occasional binary distributions for these.   Search engines for CPAN can be\nfound at https://www.cpan.org/\n\nMost importantly, CPAN includes around a thousand unbundled modules, some of which require a\nC compiler to build.  Major categories of modules are:\n\n•   Language Extensions and Documentation Tools\n\n•   Development Support\n\n•   Operating System Interfaces\n\n•   Networking, Device Control (modems) and InterProcess Communication\n\n•   Data Types and Data Type Utilities\n\n•   Database Interfaces\n\n•   User Interfaces\n\n•   Interfaces to / Emulations of Other Programming Languages\n\n•   File Names, File Systems and File Locking (see also File Handles)\n\n•   String Processing, Language Text Processing, Parsing, and Searching\n\n•   Option, Argument, Parameter, and Configuration File Processing\n\n•   Internationalization and Locale\n\n•   Authentication, Security, and Encryption\n\n•   World Wide Web, HTML, HTTP, CGI, MIME\n\n•   Server and Daemon Utilities\n\n•   Archiving and Compression\n\n•   Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing\n\n•   Mail and Usenet News\n\n•   Control Flow Utilities (callbacks and exceptions etc)\n\n•   File Handle and Input/Output Stream Utilities\n\n•   Miscellaneous Modules\n\nThe list of the registered CPAN sites follows.  Please note that the sorting order is\nalphabetical on fields:\n\nContinent\n|\n|-->Country\n|\n|-->[state/province]\n|\n|-->ftp\n|\n|-->[http]\n\nand thus the North American servers happen to be listed between the European and the South\nAmerican sites.\n\nRegistered CPAN sites\n",
                "subsections": [
                    {
                        "name": "Africa",
                        "content": "South Africa\nhttp://mirror.is.co.za/pub/cpan/\nftp://ftp.is.co.za/pub/cpan/\nhttp://cpan.mirror.ac.za/\nftp://cpan.mirror.ac.za/\nhttp://cpan.saix.net/\nftp://ftp.saix.net/pub/CPAN/\nhttp://ftp.wa.co.za/pub/CPAN/\nftp://ftp.wa.co.za/pub/CPAN/\n\nUganda\nhttp://mirror.ucu.ac.ug/cpan/\n\nZimbabwe\nhttp://mirror.zol.co.zw/CPAN/\nftp://mirror.zol.co.zw/CPAN/\n"
                    },
                    {
                        "name": "Asia",
                        "content": "Bangladesh\nhttp://mirror.dhakacom.com/CPAN/\nftp://mirror.dhakacom.com/CPAN/\n\nChina\nhttp://cpan.communilink.net/\nhttp://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/\nftp://ftp.cuhk.edu.hk/pub/packages/perl/CPAN/\nhttp://mirrors.hust.edu.cn/CPAN/\nhttp://mirrors.neusoft.edu.cn/cpan/\nhttp://mirror.lzu.edu.cn/CPAN/\nhttp://mirrors.163.com/cpan/\nhttp://mirrors.sohu.com/CPAN/\nhttp://mirrors.ustc.edu.cn/CPAN/\nftp://mirrors.ustc.edu.cn/CPAN/\nhttp://mirrors.xmu.edu.cn/CPAN/\nftp://mirrors.xmu.edu.cn/CPAN/\nhttp://mirrors.zju.edu.cn/CPAN/\n\nIndia\nhttp://cpan.excellmedia.net/\nhttp://perlmirror.indialinks.com/\n\nIndonesia\nhttp://kambing.ui.ac.id/cpan/\nhttp://cpan.pesat.net.id/\nhttp://mirror.poliwangi.ac.id/CPAN/\nhttp://kartolo.sby.datautama.net.id/CPAN/\nhttp://mirror.wanxp.id/cpan/\n\nIran\nhttp://mirror.yazd.ac.ir/cpan/\n\nIsrael\nhttp://biocourse.weizmann.ac.il/CPAN/\n\nJapan\nhttp://ftp.jaist.ac.jp/pub/CPAN/\nftp://ftp.jaist.ac.jp/pub/CPAN/\nhttp://mirror.jre655.com/CPAN/\nftp://mirror.jre655.com/CPAN/\nftp://ftp.kddilabs.jp/CPAN/\nhttp://ftp.nara.wide.ad.jp/pub/CPAN/\nftp://ftp.nara.wide.ad.jp/pub/CPAN/\nhttp://ftp.riken.jp/lang/CPAN/\nftp://ftp.riken.jp/lang/CPAN/\nftp://ftp.u-aizu.ac.jp/pub/CPAN/\nhttp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/\nftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/\n\nKazakhstan\nhttp://mirror.neolabs.kz/CPAN/\nftp://mirror.neolabs.kz/CPAN/\n\nPhilippines\nhttp://mirror.pregi.net/CPAN/\nftp://mirror.pregi.net/CPAN/\nhttp://mirror.rise.ph/cpan/\nftp://mirror.rise.ph/cpan/\n\nQatar\nhttp://mirror.qnren.qa/CPAN/\nftp://mirror.qnren.qa/CPAN/\n\nRepublic of Korea\nhttp://cpan.mirror.cdnetworks.com/\nftp://cpan.mirror.cdnetworks.com/CPAN/\nhttp://ftp.kaist.ac.kr/pub/CPAN/\nftp://ftp.kaist.ac.kr/CPAN/\nhttp://ftp.kr.freebsd.org/pub/CPAN/\nftp://ftp.kr.freebsd.org/pub/CPAN/\nhttp://mirror.navercorp.com/CPAN/\nhttp://ftp.neowiz.com/CPAN/\nftp://ftp.neowiz.com/CPAN/\n\nSingapore\nhttp://cpan.mirror.choon.net/\nhttp://mirror.0x.sg/CPAN/\nftp://mirror.0x.sg/CPAN/\n\nTaiwan\nhttp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/\nftp://cpan.cdpa.nsysu.edu.tw/Unix/Lang/CPAN/\nhttp://cpan.stu.edu.tw/\nftp://ftp.stu.edu.tw/CPAN/\nhttp://ftp.yzu.edu.tw/CPAN/\nftp://ftp.yzu.edu.tw/CPAN/\nhttp://cpan.nctu.edu.tw/\nftp://cpan.nctu.edu.tw/\nhttp://ftp.ubuntu-tw.org/mirror/CPAN/\nftp://ftp.ubuntu-tw.org/mirror/CPAN/\n\nTurkey\nhttp://cpan.ulak.net.tr/\nftp://ftp.ulak.net.tr/pub/perl/CPAN/\nhttp://mirror.vit.com.tr/mirror/CPAN/\nftp://mirror.vit.com.tr/CPAN/\n\nViet Nam\nhttp://mirrors.digipower.vn/CPAN/\nhttp://mirror.downloadvn.com/cpan/\nhttp://mirrors.vinahost.vn/CPAN/\n"
                    },
                    {
                        "name": "Europe",
                        "content": "Austria\nhttp://cpan.inode.at/\nftp://cpan.inode.at/\nhttp://mirror.easyname.at/cpan/\nftp://mirror.easyname.at/cpan/\nhttp://gd.tuwien.ac.at/languages/perl/CPAN/\nftp://gd.tuwien.ac.at/pub/CPAN/\n\nBelarus\nhttp://ftp.byfly.by/pub/CPAN/\nftp://ftp.byfly.by/pub/CPAN/\nhttp://mirror.datacenter.by/pub/CPAN/\nftp://mirror.datacenter.by/pub/CPAN/\n\nBelgium\nhttp://ftp.belnet.be/ftp.cpan.org/\nftp://ftp.belnet.be/mirror/ftp.cpan.org/\nhttp://cpan.cu.be/\nhttp://lib.ugent.be/CPAN/\nhttp://cpan.weepeetelecom.be/\n\nBosnia and Herzegovina\nhttp://cpan.mirror.ba/\nftp://ftp.mirror.ba/CPAN/\n\nBulgaria\nhttp://mirrors.neterra.net/CPAN/\nftp://mirrors.neterra.net/CPAN/\nhttp://mirrors.netix.net/CPAN/\nftp://mirrors.netix.net/CPAN/\n\nCroatia\nhttp://ftp.carnet.hr/pub/CPAN/\nftp://ftp.carnet.hr/pub/CPAN/\n\nCzech Republic\nhttp://mirror.dkm.cz/cpan/\nftp://mirror.dkm.cz/cpan/\nftp://ftp.fi.muni.cz/pub/CPAN/\nhttp://mirrors.nic.cz/CPAN/\nftp://mirrors.nic.cz/pub/CPAN/\nhttp://cpan.mirror.vutbr.cz/\nftp://mirror.vutbr.cz/cpan/\n\nDenmark\nhttp://www.cpan.dk/\nhttp://mirrors.dotsrc.org/cpan/\nftp://mirrors.dotsrc.org/cpan/\n\nFinland\nftp://ftp.funet.fi/pub/languages/perl/CPAN/\n\nFrance\nhttp://ftp.ciril.fr/pub/cpan/\nftp://ftp.ciril.fr/pub/cpan/\nhttp://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/\nftp://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/\nhttp://ftp.lip6.fr/pub/perl/CPAN/\nftp://ftp.lip6.fr/pub/perl/CPAN/\nhttp://mirror.ibcp.fr/pub/CPAN/\nftp://ftp.oleane.net/pub/CPAN/\nhttp://cpan.mirrors.ovh.net/ftp.cpan.org/\nftp://cpan.mirrors.ovh.net/ftp.cpan.org/\nhttp://cpan.enstimac.fr/\n\nGermany\nhttp://mirror.23media.de/cpan/\nftp://mirror.23media.de/cpan/\nhttp://artfiles.org/cpan.org/\nftp://artfiles.org/cpan.org/\nhttp://mirror.bibleonline.ru/cpan/\nhttp://mirror.checkdomain.de/CPAN/\nftp://mirror.checkdomain.de/CPAN/\nhttp://cpan.noris.de/\nhttp://mirror.de.leaseweb.net/CPAN/\nftp://mirror.de.leaseweb.net/CPAN/\nhttp://cpan.mirror.euserv.net/\nftp://mirror.euserv.net/cpan/\nhttp://ftp-stud.hs-esslingen.de/pub/Mirrors/CPAN/\nftp://mirror.fraunhofer.de/CPAN/\nftp://ftp.freenet.de/pub/ftp.cpan.org/pub/CPAN/\nhttp://ftp.hosteurope.de/pub/CPAN/\nftp://ftp.hosteurope.de/pub/CPAN/\nftp://ftp.fu-berlin.de/unix/languages/perl/\nhttp://ftp.gwdg.de/pub/languages/perl/CPAN/\nftp://ftp.gwdg.de/pub/languages/perl/CPAN/\nhttp://ftp.hawo.stw.uni-erlangen.de/CPAN/\nftp://ftp.hawo.stw.uni-erlangen.de/CPAN/\nhttp://cpan.mirror.iphh.net/\nftp://cpan.mirror.iphh.net/pub/CPAN/\nftp://ftp.mpi-inf.mpg.de/pub/perl/CPAN/\nhttp://cpan.netbet.org/\nhttp://mirror.netcologne.de/cpan/\nftp://mirror.netcologne.de/cpan/\nftp://mirror.petamem.com/CPAN/\nhttp://www.planet-elektronik.de/CPAN/\nhttp://ftp.halifax.rwth-aachen.de/cpan/\nftp://ftp.halifax.rwth-aachen.de/cpan/\nhttp://mirror.softaculous.com/cpan/\nhttp://ftp.u-tx.net/CPAN/\nftp://ftp.u-tx.net/CPAN/\nhttp://mirror.reismil.ch/CPAN/\n\nGreece\nhttp://cpan.cc.uoc.gr/mirrors/CPAN/\nftp://ftp.cc.uoc.gr/mirrors/CPAN/\nhttp://ftp.ntua.gr/pub/lang/perl/\nftp://ftp.ntua.gr/pub/lang/perl/\n\nHungary\nhttp://mirror.met.hu/CPAN/\n\nIreland\nhttp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN/\nftp://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN/\n\nItaly\nhttp://bo.mirror.garr.it/mirrors/CPAN/\nftp://ftp.eutelia.it/CPANMirror/\nhttp://cpan.panu.it/\nftp://ftp.panu.it/pub/mirrors/perl/CPAN/\nhttp://cpan.muzzy.it/\n\nLatvia\nhttp://kvin.lv/pub/CPAN/\n\nLithuania\nhttp://ftp.litnet.lt/pub/CPAN/\nftp://ftp.litnet.lt/pub/CPAN/\n\nMoldova\nhttp://mirror.as43289.net/pub/CPAN/\nftp://mirror.as43289.net/pub/CPAN/\n\nNetherlands\nhttp://cpan.cs.uu.nl/\nftp://ftp.cs.uu.nl/pub/CPAN/\nhttp://mirror.nl.leaseweb.net/CPAN/\nftp://mirror.nl.leaseweb.net/CPAN/\nhttp://ftp.nluug.nl/languages/perl/CPAN/\nftp://ftp.nluug.nl/pub/languages/perl/CPAN/\nhttp://mirror.transip.net/CPAN/\nftp://mirror.transip.net/CPAN/\nhttp://cpan.mirror.triple-it.nl/\nhttp://ftp.tudelft.nl/cpan/\nftp://ftp.tudelft.nl/pub/CPAN/\nftp://download.xs4all.nl/pub/mirror/CPAN/\n\nNorway\nhttp://cpan.uib.no/\nftp://cpan.uib.no/pub/CPAN/\nftp://ftp.uninett.no/pub/languages/perl/CPAN/\nhttp://cpan.vianett.no/\n\nPoland\nhttp://ftp.agh.edu.pl/CPAN/\nftp://ftp.agh.edu.pl/CPAN/\nhttp://ftp.piotrkosoft.net/pub/mirrors/CPAN/\nftp://ftp.piotrkosoft.net/pub/mirrors/CPAN/\nftp://ftp.ps.pl/pub/CPAN/\nhttp://sunsite.icm.edu.pl/pub/CPAN/\nftp://sunsite.icm.edu.pl/pub/CPAN/\n\nPortugal\nhttp://cpan.dcc.fc.up.pt/\nhttp://mirrors.fe.up.pt/pub/CPAN/\nhttp://cpan.perl-hackers.net/\nhttp://cpan.perl.pt/\n\nRomania\nhttp://mirrors.hostingromania.ro/cpan.org/\nftp://ftp.lug.ro/CPAN/\nhttp://mirrors.m247.ro/CPAN/\nhttp://mirrors.evowise.com/CPAN/\nhttp://mirrors.teentelecom.net/CPAN/\nftp://mirrors.teentelecom.net/CPAN/\nhttp://mirrors.xservers.ro/CPAN/\n\nRussian Federation\nftp://ftp.aha.ru/CPAN/\nhttp://cpan.rinet.ru/\nftp://cpan.rinet.ru/pub/mirror/CPAN/\nhttp://cpan-mirror.rbc.ru/pub/CPAN/\nhttp://mirror.rol.ru/CPAN/\nhttp://cpan.uni-altai.ru/\nhttp://cpan.webdesk.ru/\nftp://cpan.webdesk.ru/cpan/\nhttp://mirror.yandex.ru/mirrors/cpan/\nftp://mirror.yandex.ru/mirrors/cpan/\n\nSerbia\nhttp://mirror.sbb.rs/CPAN/\nftp://mirror.sbb.rs/CPAN/\n\nSlovakia\nhttp://cpan.lnx.sk/\nhttp://tux.rainside.sk/CPAN/\nftp://tux.rainside.sk/CPAN/\n\nSlovenia\nhttp://ftp.arnes.si/software/perl/CPAN/\nftp://ftp.arnes.si/software/perl/CPAN/\n\nSpain\nhttp://mirrors.evowise.com/CPAN/\nhttp://osl.ugr.es/CPAN/\nhttp://ftp.rediris.es/mirror/CPAN/\nftp://ftp.rediris.es/mirror/CPAN/\n\nSweden\nhttp://ftp.acc.umu.se/mirror/CPAN/\nftp://ftp.acc.umu.se/mirror/CPAN/\n\nSwitzerland\nhttp://www.pirbot.com/mirrors/cpan/\nhttp://mirror.switch.ch/ftp/mirror/CPAN/\nftp://mirror.switch.ch/mirror/CPAN/\n\nUkraine\nhttp://cpan.ip-connect.vn.ua/\nftp://cpan.ip-connect.vn.ua/mirror/cpan/\n\nUnited Kingdom\nhttp://cpan.mirror.anlx.net/\nftp://ftp.mirror.anlx.net/CPAN/\nhttp://mirror.bytemark.co.uk/CPAN/\nftp://mirror.bytemark.co.uk/CPAN/\nhttp://mirrors.coreix.net/CPAN/\nhttp://cpan.etla.org/\nftp://cpan.etla.org/pub/CPAN/\nhttp://cpan.cpantesters.org/\nhttp://mirror.sax.uk.as61049.net/CPAN/\nhttp://mirror.sov.uk.goscomb.net/CPAN/\nhttp://www.mirrorservice.org/sites/cpan.perl.org/CPAN/\nftp://ftp.mirrorservice.org/sites/cpan.perl.org/CPAN/\nhttp://mirror.ox.ac.uk/sites/www.cpan.org/\nftp://mirror.ox.ac.uk/sites/www.cpan.org/\nhttp://ftp.ticklers.org/pub/CPAN/\nftp://ftp.ticklers.org/pub/CPAN/\nhttp://cpan.mirrors.uk2.net/\nftp://mirrors.uk2.net/pub/CPAN/\nhttp://mirror.ukhost4u.com/CPAN/\n"
                    },
                    {
                        "name": "North America",
                        "content": "Canada\nhttp://CPAN.mirror.rafal.ca/\nftp://CPAN.mirror.rafal.ca/pub/CPAN/\nhttp://mirror.csclub.uwaterloo.ca/CPAN/\nftp://mirror.csclub.uwaterloo.ca/CPAN/\nhttp://mirrors.gossamer-threads.com/CPAN/\nhttp://mirror.its.dal.ca/cpan/\nftp://mirror.its.dal.ca/cpan/\nftp://ftp.ottix.net/pub/CPAN/\n\nCosta Rica\nhttp://mirrors.ucr.ac.cr/CPAN/\n\nMexico\nhttp://www.msg.com.mx/CPAN/\nftp://ftp.msg.com.mx/pub/CPAN/\n\nUnited States\nAlabama\nhttp://mirror.teklinks.com/CPAN/\n\nArizona\nhttp://mirror.n5tech.com/CPAN/\nhttp://mirrors.namecheap.com/CPAN/\nftp://mirrors.namecheap.com/CPAN/\n\nCalifornia\nhttp://cpan.develooper.com/\nhttp://httpupdate127.cpanel.net/CPAN/\nhttp://mirrors.sonic.net/cpan/\nftp://mirrors.sonic.net/cpan/\nhttp://www.perl.com/CPAN/\nhttp://cpan.yimg.com/\n\nIdaho\nhttp://mirrors.syringanetworks.net/CPAN/\nftp://mirrors.syringanetworks.net/CPAN/\n\nIllinois\nhttp://cpan.mirrors.hoobly.com/\nhttp://mirror.team-cymru.org/CPAN/\nftp://mirror.team-cymru.org/CPAN/\n\nIndiana\nhttp://cpan.netnitco.net/\nftp://cpan.netnitco.net/pub/mirrors/CPAN/\nftp://ftp.uwsg.iu.edu/pub/perl/CPAN/\n\nKansas\nhttp://mirrors.concertpass.com/cpan/\n\nMassachusetts\nhttp://mirrors.ccs.neu.edu/CPAN/\n\nMichigan\nhttp://cpan.cse.msu.edu/\nftp://cpan.cse.msu.edu/\nhttp://httpupdate118.cpanel.net/CPAN/\nhttp://mirrors-usa.go-parts.com/cpan/\nhttp://ftp.wayne.edu/CPAN/\nftp://ftp.wayne.edu/CPAN/\n\nNew Hampshire\nhttp://mirror.metrocast.net/cpan/\n\nNew Jersey\nhttp://mirror.datapipe.net/CPAN/\nftp://mirror.datapipe.net/pub/CPAN/\nhttp://www.hoovism.com/CPAN/\nftp://ftp.hoovism.com/CPAN/\nhttp://cpan.mirror.nac.net/\n\nNew York\nhttp://mirror.cc.columbia.edu/pub/software/cpan/\nftp://mirror.cc.columbia.edu/pub/software/cpan/\nhttp://cpan.belfry.net/\nhttp://cpan.erlbaum.net/\nftp://cpan.erlbaum.net/CPAN/\nhttp://cpan.hexten.net/\nftp://cpan.hexten.net/\nhttp://mirror.nyi.net/CPAN/\nftp://mirror.nyi.net/pub/CPAN/\nhttp://noodle.portalus.net/CPAN/\nftp://noodle.portalus.net/CPAN/\nhttp://mirrors.rit.edu/CPAN/\nftp://mirrors.rit.edu/CPAN/\n\nNorth Carolina\nhttp://httpupdate140.cpanel.net/CPAN/\nhttp://mirrors.ibiblio.org/CPAN/\n\nOregon\nhttp://ftp.osuosl.org/pub/CPAN/\nftp://ftp.osuosl.org/pub/CPAN/\nhttp://mirror.uoregon.edu/CPAN/\n\nPennsylvania\nhttp://cpan.pair.com/\nftp://cpan.pair.com/pub/CPAN/\nhttp://cpan.mirrors.ionfish.org/\n\nSouth Carolina\nhttp://cpan.mirror.clemson.edu/\n\nTexas\nhttp://mirror.uta.edu/CPAN/\n\nUtah\nhttp://cpan.cs.utah.edu/\nftp://cpan.cs.utah.edu/CPAN/\nftp://mirror.xmission.com/CPAN/\n\nVirginia\nhttp://mirror.cogentco.com/pub/CPAN/\nftp://mirror.cogentco.com/pub/CPAN/\nhttp://mirror.jmu.edu/pub/CPAN/\nftp://mirror.jmu.edu/pub/CPAN/\nhttp://mirror.us.leaseweb.net/CPAN/\nftp://mirror.us.leaseweb.net/CPAN/\n\nWashington\nhttp://cpan.llarian.net/\nftp://cpan.llarian.net/pub/CPAN/\n\nWisconsin\nhttp://cpan.mirrors.tds.net/\nftp://cpan.mirrors.tds.net/pub/CPAN/\n"
                    },
                    {
                        "name": "Oceania",
                        "content": "Australia\nhttp://mirror.as24220.net/pub/cpan/\nftp://mirror.as24220.net/pub/cpan/\nhttp://cpan.mirrors.ilisys.com.au/\nhttp://cpan.mirror.digitalpacific.com.au/\nftp://mirror.internode.on.net/pub/cpan/\nhttp://mirror.optusnet.com.au/CPAN/\nhttp://cpan.mirror.serversaustralia.com.au/\nhttp://cpan.uberglobalmirror.com/\nhttp://mirror.waia.asn.au/pub/cpan/\n\nNew Caledonia\nhttp://cpan.lagoon.nc/pub/CPAN/\nftp://cpan.lagoon.nc/pub/CPAN/\nhttp://cpan.nautile.nc/CPAN/\nftp://cpan.nautile.nc/CPAN/\n\nNew Zealand\nftp://ftp.auckland.ac.nz/pub/perl/CPAN/\nhttp://cpan.catalyst.net.nz/CPAN/\nftp://cpan.catalyst.net.nz/pub/CPAN/\nhttp://cpan.inspire.net.nz/\nftp://cpan.inspire.net.nz/cpan/\nhttp://mirror.webtastix.net/CPAN/\nftp://mirror.webtastix.net/CPAN/\n"
                    },
                    {
                        "name": "South America",
                        "content": "Argentina\nhttp://cpan.mmgdesigns.com.ar/\n\nBrazil\nhttp://cpan.kinghost.net/\nhttp://linorg.usp.br/CPAN/\nhttp://mirror.nbtelecom.com.br/CPAN/\n\nChile\nhttp://cpan.dcc.uchile.cl/\nftp://cpan.dcc.uchile.cl/pub/lang/cpan/\n"
                    },
                    {
                        "name": "RSYNC Mirrors",
                        "content": "rsync://ftp.is.co.za/IS-Mirror/ftp.cpan.org/\nrsync://mirror.ac.za/CPAN/\nrsync://mirror.zol.co.zw/CPAN/\nrsync://mirror.dhakacom.com/CPAN/\nrsync://mirrors.ustc.edu.cn/CPAN/\nrsync://mirrors.xmu.edu.cn/CPAN/\nrsync://kambing.ui.ac.id/CPAN/\nrsync://ftp.jaist.ac.jp/pub/CPAN/\nrsync://mirror.jre655.com/CPAN/\nrsync://ftp.kddilabs.jp/cpan/\nrsync://ftp.nara.wide.ad.jp/cpan/\nrsync://ftp.riken.jp/cpan/\nrsync://mirror.neolabs.kz/CPAN/\nrsync://mirror.qnren.qa/CPAN/\nrsync://ftp.neowiz.com/CPAN/\nrsync://mirror.0x.sg/CPAN/\nrsync://ftp.yzu.edu.tw/pub/CPAN/\nrsync://ftp.ubuntu-tw.org/CPAN/\nrsync://mirrors.digipower.vn/CPAN/\nrsync://cpan.inode.at/CPAN/\nrsync://ftp.byfly.by/CPAN/\nrsync://mirror.datacenter.by/CPAN/\nrsync://ftp.belnet.be/cpan/\nrsync://cpan.mirror.ba/CPAN/\nrsync://mirrors.neterra.net/CPAN/\nrsync://mirrors.netix.net/CPAN/\nrsync://mirror.dkm.cz/cpan/\nrsync://mirrors.nic.cz/CPAN/\nrsync://cpan.mirror.vutbr.cz/cpan/\nrsync://rsync.nic.funet.fi/CPAN/\nrsync://ftp.ciril.fr/pub/cpan/\nrsync://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/cpan/\nrsync://cpan.mirrors.ovh.net/CPAN/\nrsync://mirror.de.leaseweb.net/CPAN/\nrsync://mirror.euserv.net/cpan/\nrsync://ftp-stud.hs-esslingen.de/CPAN/\nrsync://ftp.gwdg.de/pub/languages/perl/CPAN/\nrsync://ftp.hawo.stw.uni-erlangen.de/CPAN/\nrsync://cpan.mirror.iphh.net/CPAN/\nrsync://mirror.netcologne.de/cpan/\nrsync://ftp.halifax.rwth-aachen.de/cpan/\nrsync://ftp.ntua.gr/CPAN/\nrsync://mirror.met.hu/CPAN/\nrsync://ftp.heanet.ie/mirrors/ftp.perl.org/pub/CPAN/\nrsync://rsync.panu.it/CPAN/\nrsync://mirror.as43289.net/CPAN/\nrsync://rsync.cs.uu.nl/CPAN/\nrsync://mirror.nl.leaseweb.net/CPAN/\nrsync://ftp.nluug.nl/CPAN/\nrsync://mirror.transip.net/CPAN/\nrsync://cpan.uib.no/cpan/\nrsync://cpan.vianett.no/CPAN/\nrsync://cpan.perl-hackers.net/CPAN/\nrsync://cpan.perl.pt/cpan/\nrsync://mirrors.m247.ro/CPAN/\nrsync://mirrors.teentelecom.net/CPAN/\nrsync://cpan.webdesk.ru/CPAN/\nrsync://mirror.yandex.ru/mirrors/cpan/\nrsync://mirror.sbb.rs/CPAN/\nrsync://ftp.acc.umu.se/mirror/CPAN/\nrsync://rsync.pirbot.com/ftp/cpan/\nrsync://cpan.ip-connect.vn.ua/CPAN/\nrsync://rsync.mirror.anlx.net/CPAN/\nrsync://mirror.bytemark.co.uk/CPAN/\nrsync://mirror.sax.uk.as61049.net/CPAN/\nrsync://rsync.mirrorservice.org/cpan.perl.org/CPAN/\nrsync://ftp.ticklers.org/CPAN/\nrsync://mirrors.uk2.net/CPAN/\nrsync://CPAN.mirror.rafal.ca/CPAN/\nrsync://mirror.csclub.uwaterloo.ca/CPAN/\nrsync://mirrors.namecheap.com/CPAN/\nrsync://mirrors.syringanetworks.net/CPAN/\nrsync://mirror.team-cymru.org/CPAN/\nrsync://debian.cse.msu.edu/cpan/\nrsync://mirrors-usa.go-parts.com/mirrors/cpan/\nrsync://rsync.hoovism.com/CPAN/\nrsync://mirror.cc.columbia.edu/cpan/\nrsync://noodle.portalus.net/CPAN/\nrsync://mirrors.rit.edu/cpan/\nrsync://mirrors.ibiblio.org/CPAN/\nrsync://cpan.pair.com/CPAN/\nrsync://cpan.cs.utah.edu/CPAN/\nrsync://mirror.cogentco.com/CPAN/\nrsync://mirror.jmu.edu/CPAN/\nrsync://mirror.us.leaseweb.net/CPAN/\nrsync://cpan.mirror.digitalpacific.com.au/cpan/\nrsync://mirror.internode.on.net/cpan/\nrsync://uberglobalmirror.com/cpan/\nrsync://cpan.lagoon.nc/cpan/\nrsync://mirrors.mmgdesigns.com.ar/CPAN/\n\nFor an up-to-date listing of CPAN sites, see <https://www.cpan.org/SITES> or\n<ftp://www.cpan.org/SITES>.\n"
                    },
                    {
                        "name": "Modules: Creation, Use, and Abuse",
                        "content": "(The following section is borrowed directly from Tim Bunce's modules file, available at your\nnearest CPAN site.)\n\nPerl implements a class using a package, but the presence of a package doesn't imply the\npresence of a class.  A package is just a namespace.  A class is a package that provides\nsubroutines that can be used as methods.  A method is just a subroutine that expects, as its\nfirst argument, either the name of a package (for \"static\" methods), or a reference to\nsomething (for \"virtual\" methods).\n\nA module is a file that (by convention) provides a class of the same name (sans the .pm),\nplus an import method in that class that can be called to fetch exported symbols.  This\nmodule may implement some of its methods by loading dynamic C or C++ objects, but that should\nbe totally transparent to the user of the module.  Likewise, the module might set up an\nAUTOLOAD function to slurp in subroutine definitions on demand, but this is also transparent.\nOnly the .pm file is required to exist.  See perlsub, perlobj, and AutoLoader for details\nabout the AUTOLOAD mechanism.\n"
                    },
                    {
                        "name": "Guidelines for Module Creation",
                        "content": "•   Do similar modules already exist in some form?\n\nIf so, please try to reuse the existing modules either in whole or by inheriting useful\nfeatures into a new class.  If this is not practical try to get together with the module\nauthors to work on extending or enhancing the functionality of the existing modules.  A\nperfect example is the plethora of packages in perl4 for dealing with command line\noptions.\n\nIf you are writing a module to expand an already existing set of modules, please\ncoordinate with the author of the package.  It helps if you follow the same naming scheme\nand module interaction scheme as the original author.\n\n•   Try to design the new module to be easy to extend and reuse.\n\nTry to \"use warnings;\" (or \"use warnings qw(...);\").  Remember that you can add \"no\nwarnings qw(...);\" to individual blocks of code that need less warnings.\n\nUse blessed references.  Use the two argument form of bless to bless into the class name\ngiven as the first parameter of the constructor, e.g.,:\n\nsub new {\nmy $class = shift;\nreturn bless {}, $class;\n}\n\nor even this if you'd like it to be used as either a static or a virtual method.\n\nsub new {\nmy $self  = shift;\nmy $class = ref($self) || $self;\nreturn bless {}, $class;\n}\n\nPass arrays as references so more parameters can be added later (it's also faster).\nConvert functions into methods where appropriate.  Split large methods into smaller more\nflexible ones.  Inherit methods from other modules if appropriate.\n\nAvoid class name tests like: \"die \"Invalid\" unless ref $ref eq 'FOO'\".  Generally you can\ndelete the \"eq 'FOO'\" part with no harm at all.  Let the objects look after themselves!\nGenerally, avoid hard-wired class names as far as possible.\n\nAvoid \"$r->Class::func()\" where using \"@ISA=qw(... Class ...)\" and \"$r->func()\" would\nwork.\n\nUse autosplit so little used or newly added functions won't be a burden to programs that\ndon't use them. Add test functions to the module after END either using AutoSplit or\nby saying:\n\neval join('',<main::DATA>) || die $@ unless caller();\n\nDoes your module pass the 'empty subclass' test? If you say \"@SUBCLASS::ISA =\nqw(YOURCLASS);\" your applications should be able to use SUBCLASS in exactly the same way\nas YOURCLASS.  For example, does your application still work if you change:  \"$obj =\nYOURCLASS->new();\" into: \"$obj = SUBCLASS->new();\" ?\n\nAvoid keeping any state information in your packages. It makes it difficult for multiple\nother packages to use yours. Keep state information in objects.\n\nAlways use -w.\n\nTry to \"use strict;\" (or \"use strict qw(...);\").  Remember that you can add \"no strict\nqw(...);\" to individual blocks of code that need less strictness.\n\nAlways use -w.\n\nFollow the guidelines in perlstyle.\n\nAlways use -w.\n\n•   Some simple style guidelines\n\nThe perlstyle manual supplied with Perl has many helpful points.\n\nCoding style is a matter of personal taste. Many people evolve their style over several\nyears as they learn what helps them write and maintain good code.  Here's one set of\nassorted suggestions that seem to be widely used by experienced developers:\n\nUse underscores to separate words.  It is generally easier to read $varnameslikethis\nthan $VarNamesLikeThis, especially for non-native speakers of English. It's also a simple\nrule that works consistently with VARNAMESLIKETHIS.\n\nPackage/Module names are an exception to this rule. Perl informally reserves lowercase\nmodule names for 'pragma' modules like integer and strict. Other modules normally begin\nwith a capital letter and use mixed case with no underscores (need to be short and\nportable).\n\nYou may find it helpful to use letter case to indicate the scope or nature of a variable.\nFor example:\n\n$ALLCAPSHERE   constants only (beware clashes with Perl vars)\n$SomeCapsHere  package-wide global/static\n$nocapshere    function scope my() or local() variables\n\nFunction and method names seem to work best as all lowercase.  e.g., \"$obj->asstring()\".\n\nYou can use a leading underscore to indicate that a variable or function should not be\nused outside the package that defined it.\n\n•   Select what to export.\n\nDo NOT export method names!\n\nDo NOT export anything else by default without a good reason!\n\nExports pollute the namespace of the module user.  If you must export try to use\n@EXPORTOK in preference to @EXPORT and avoid short or common names to reduce the risk of\nname clashes.\n\nGenerally anything not exported is still accessible from outside the module using the\nModuleName::itemname (or \"$blessedref->method\") syntax.  By convention you can use a\nleading underscore on names to indicate informally that they are 'internal' and not for\npublic use.\n\n(It is actually possible to get private functions by saying: \"my $subref = sub { ... };\n&$subref;\".  But there's no way to call that directly as a method, because a method must\nhave a name in the symbol table.)\n\nAs a general rule, if the module is trying to be object oriented then export nothing. If\nit's just a collection of functions then @EXPORTOK anything but use @EXPORT with\ncaution.\n\n•   Select a name for the module.\n\nThis name should be as descriptive, accurate, and complete as possible.  Avoid any risk\nof ambiguity. Always try to use two or more whole words.  Generally the name should\nreflect what is special about what the module does rather than how it does it.  Please\nuse nested module names to group informally or categorize a module.  There should be a\nvery good reason for a module not to have a nested name.  Module names should begin with\na capital letter.\n\nHaving 57 modules all called Sort will not make life easy for anyone (though having 23\ncalled Sort::Quick is only marginally better :-).  Imagine someone trying to install your\nmodule alongside many others.\n\nIf you are developing a suite of related modules/classes it's good practice to use nested\nclasses with a common prefix as this will avoid namespace clashes. For example:\nXyz::Control, Xyz::View, Xyz::Model etc. Use the modules in this list as a naming guide.\n\nIf adding a new module to a set, follow the original author's standards for naming\nmodules and the interface to methods in those modules.\n\nIf developing modules for private internal or project specific use, that will never be\nreleased to the public, then you should ensure that their names will not clash with any\nfuture public module. You can do this either by using the reserved Local::* category or\nby using a category name that includes an underscore like FooCorp::*.\n\nTo be portable each component of a module name should be limited to 11 characters. If it\nmight be used on MS-DOS then try to ensure each is unique in the first 8 characters.\nNested modules make this easier.\n\nFor additional guidance on the naming of modules, please consult:\n\nhttps://pause.perl.org/pause/query?ACTION=pausenamingmodules\n\nor send mail to the <module-authors@perl.org> mailing list.\n\n•   Have you got it right?\n\nHow do you know that you've made the right decisions? Have you picked an interface design\nthat will cause problems later? Have you picked the most appropriate name? Do you have\nany questions?\n\nThe best way to know for sure, and pick up many helpful suggestions, is to ask someone\nwho knows. The <module-authors@perl.org> mailing list is useful for this purpose; it's\nalso accessible via news interface as perl.module-authors at nntp.perl.org.\n\nAll you need to do is post a short summary of the module, its purpose and interfaces. A\nfew lines on each of the main methods is probably enough. (If you post the whole module\nit might be ignored by busy people - generally the very people you want to read it!)\n\nDon't worry about posting if you can't say when the module will be ready - just say so in\nthe message. It might be worth inviting others to help you, they may be able to complete\nit for you!\n\n•   README and other Additional Files.\n\nIt's well known that software developers usually fully document the software they write.\nIf, however, the world is in urgent need of your software and there is not enough time to\nwrite the full documentation please at least provide a README file containing:\n\n•         A description of the module/package/extension etc.\n\n•         A copyright notice - see below.\n\n•         Prerequisites - what else you may need to have.\n\n•         How to build it - possible changes to Makefile.PL etc.\n\n•         How to install it.\n\n•         Recent changes in this release, especially incompatibilities\n\n•         Changes / enhancements you plan to make in the future.\n\nIf the README file seems to be getting too large you may wish to split out some of the\nsections into separate files: INSTALL, Copying, ToDo etc.\n\n•   Adding a Copyright Notice.\n\nHow you choose to license your work is a personal decision.  The general mechanism is\nto assert your Copyright and then make a declaration of how others may\ncopy/use/modify your work.\n\nPerl, for example, is supplied with two types of licence: The GNU GPL and The\nArtistic Licence (see the files README, Copying, and Artistic, or perlgpl and\nperlartistic).  Larry has good reasons for NOT just using the GNU GPL.\n\nMy personal recommendation, out of respect for Larry, Perl, and the Perl community at\nlarge is to state something simply like:\n\nCopyright (c) 1995 Your Name. All rights reserved.\nThis program is free software; you can redistribute it and/or\nmodify it under the same terms as Perl itself.\n\nThis statement should at least appear in the README file. You may also wish to\ninclude it in a Copying file and your source files.  Remember to include the other\nwords in addition to the Copyright.\n\n•   Give the module a version/issue/release number.\n\nTo be fully compatible with the Exporter and MakeMaker modules you should store your\nmodule's version number in a non-my package variable called $VERSION.  This should be\na positive floating point number with at least two digits after the decimal (i.e.,\nhundredths, e.g, \"$VERSION = \"0.01\"\").  Don't use a \"1.3.2\" style version.  See\nExporter for details.\n\nIt may be handy to add a function or method to retrieve the number.  Use the number\nin announcements and archive file names when releasing the module\n(ModuleName-1.02.tar.Z).  See perldoc ExtUtils::MakeMaker.pm for details.\n\n•   How to release and distribute a module.\n\nIf possible, register the module with CPAN. Follow the instructions and links on:\n\nhttps://www.cpan.org/modules/04pause.html\n\nand upload to:\n\nhttps://pause.perl.org/\n\nand notify <modules@perl.org>. This will allow anyone to install your module using\nthe \"cpan\" tool distributed with Perl.\n\nBy using the WWW interface you can ask the Upload Server to mirror your modules from\nyour ftp or WWW site into your own directory on CPAN!\n\n•   Take care when changing a released module.\n\nAlways strive to remain compatible with previous released versions.  Otherwise try to\nadd a mechanism to revert to the old behavior if people rely on it.  Document\nincompatible changes.\n"
                    },
                    {
                        "name": "Guidelines for Converting Perl 4 Library Scripts into Modules",
                        "content": "•   There is no requirement to convert anything.\n\nIf it ain't broke, don't fix it! Perl 4 library scripts should continue to work with no\nproblems. You may need to make some minor changes (like escaping non-array @'s in double\nquoted strings) but there is no need to convert a .pl file into a Module for just that.\n\n•   Consider the implications.\n\nAll Perl applications that make use of the script will need to be changed (slightly) if\nthe script is converted into a module.  Is it worth it unless you plan to make other\nchanges at the same time?\n\n•   Make the most of the opportunity.\n\nIf you are going to convert the script to a module you can use the opportunity to\nredesign the interface.  The guidelines for module creation above include many of the\nissues you should consider.\n\n•   The pl2pm utility will get you started.\n\nThis utility will read *.pl files (given as parameters) and write corresponding *.pm\nfiles. The pl2pm utilities does the following:\n\n•         Adds the standard Module prologue lines\n\n•         Converts package specifiers from ' to ::\n\n•         Converts die(...) to croak(...)\n\n•         Several other minor changes\n\nBeing a mechanical process pl2pm is not bullet proof. The converted code will need\ncareful checking, especially any package statements.  Don't delete the original .pl file\ntill the new .pm one works!\n"
                    },
                    {
                        "name": "Guidelines for Reusing Application Code",
                        "content": "•   Complete applications rarely belong in the Perl Module Library.\n\n•   Many applications contain some Perl code that could be reused.\n\nHelp save the world! Share your code in a form that makes it easy to reuse.\n\n•   Break-out the reusable code into one or more separate module files.\n\n•   Take the opportunity to reconsider and redesign the interfaces.\n\n•   In some cases the 'application' can then be reduced to a small\n\nfragment of code built on top of the reusable modules. In these cases the application\ncould invoked as:\n\n% perl -e 'use Module::Name; method(@ARGV)' ...\nor\n% perl -mModule::Name ...    (in perl5.002 or higher)\n"
                    }
                ]
            },
            "NOTE": {
                "content": "Perl does not enforce private and public parts of its modules as you may have been used to in\nother languages like C++, Ada, or Modula-17.  Perl doesn't have an infatuation with enforced\nprivacy.  It would prefer that you stayed out of its living room because you weren't invited,\nnot because it has a shotgun.\n\nThe module and its user have a contract, part of which is common law, and part of which is\n\"written\".  Part of the common law contract is that a module doesn't pollute any namespace it\nwasn't asked to.  The written contract for the module (A.K.A. documentation) may make other\nprovisions.  But then you know when you \"use RedefineTheWorld\" that you're redefining the\nworld and willing to take the consequences.\n\n\n\nperl v5.34.0                                 2025-07-25                                PERLMODLIB(1)",
                "subsections": []
            }
        }
    }
}