Acme-CPANLists

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

SYNOPSIS

    Acme::CPANLists is yet another way to organize CPAN modules/authors
    into various "lists".

SPECIFICATION VERSION

    0.090

DESCRIPTION

    With the multitude of modules that are available on CPAN, it is
    sometimes difficult for a user to choose an appropriate module for a
    task or find other modules related in some ways to a module. Various
    projects like CPAN Ratings <http://cpanratings.perl.org/> (where users
    rate and review a distribution) or MetaCPAN <https://metacpan.org/>
    (which has a ++ feature where logged-in users can press a button to ++
    a module and the website will tally the number of ++'s a distribution
    has) help to some extent. There are also various blog posts by Perl
    programmers which review modules, e.g. CPAN Module Reviews by Neil
    Bowers <http://neilb.org/reviews/>.

    For categorizing CPAN authors, there are also the Acme::CPANAuthors
    project, complete with its own website <http://acme.cpanauthors.org/>.

    Acme::CPANLists is another way to help. One creates an
    Acme::CPANLists::SOMENAME module, and inside it puts lists of CPAN
    modules and authors with their descriptions/reviews/ratings. The
    creator of the list is free to organize her list in whatever way she
    likes.

    A related website/online service for "CPAN lists" is coming (when I
    eventually get to it :-), or perhaps when I get some help).

CREATING AN ACME::CPANLISTS MODULE

    The first step is to decide on a name of the module. It must be under
    the Acme::CPANLists:: namespace. Since, unlike in Acme::CPANAuthors, a
    module can contain multiple lists, you can just use your CPAN ID for
    the module, even if you want to create many lists, for example:
    Acme::CPANLists::PERLANCAR. But I recommend that you put each list into
    a separate module under your CPAN ID subpackage, for example:
    Acme::CPANLists::PERLANCAR::Unbless or
    Acme::CPANLists::PERLANCAR::Task::PickingRandomLinesFromFile.

    Inside the module, the two main package variables you have to declare
    are:

     our @Author_Lists = ( ... );
     our @Module_Lists = ( ... );

    Obviously enough, @Author_Lists contains author lists while
    @Module_Lists contains module lists.

    Each author/module list is just a hash structure (DefHash). The basic
    structure is this:

     # an example author list
     {
         #id => 'GUID', # optional, can be set to ease list identification/referral
         summary => 'My favorite modules',
         description => <<_,
     (Some longer description, in Markdown format)
    
     This is just a list of my favorite modules.
     _
         entries => [
             {...},
             ...
         ],
     }
    
     # an example module list
     {
         #id => 'GUID', # optional, can be set to ease list identification/referral
         summary => 'My favorite authors',
         description => <<'_',



( run in 1.003 second using v1.01-cache-2.11-cpan-0d23b851a93 )