in reply to "Levels of Dependency"?
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.
|
|---|