Conventionally, "pure Perl" means that a module relies only on other modules and no compiled C ("XS") portion. HTTP::Server::Brick relies on other non-core modules, as the Build.PL script shows:

... requires => { 'Module::Build' => 0, 'Test::More' => 0, 'version' => 0, 'HTTP::Daemon' => 0, 'HTTP::Status' => 0, 'LWP::MediaTypes' => 0, 'LWP' => 0, 'LWP::UserAgent' => 0, 'IO::Handle' => 0, }, ...

It relies on Module::Build which will only be core in a future version of Perl, and LWP.

The quest of building a prerequisite tree for modules is hard because of the nature of the Perl module build process. Traditionally, all prerequisites have been determined by Perl programs, be it Makefile.PL or Build.PL. There has been the trend of listing prerequisites in the META.yml file for more convenient inspection. If you want to build the dependency graph of modules, I suggest you install a local CPAN mirror via CPAN::Mini and extract all META.yml files from the distributions and build the tree from that.

Update: Thinking a bit more about it, you can cut some corners by using Module::CoreList to immediately find the modules included in the Perl cores. This does not necessarily mean that a module in the Perl core does not live a dual life in the Perl core and on CPAN. And there is Module::ThirdParty which links in third party modules that do not live on CPAN but are (possibly) required by CPAN modules.


In reply to Re: "Levels of Dependency"? by Corion
in thread "Levels of Dependency"? by mercutio_viz

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.