view release on metacpan or search on metacpan
Buckaroo.pm view on Meta::CPAN
our @EXPORT = ();
our $VERSION = '1.02';
###############################################################################
# IF YOU WANT TO TURN ON DEBUG MODE
# (and thus see lots of logging lines that explain how things are happening
# as they happen), set debug_mode = 1.
# If you do, you'll need either:
# (1) Perl 5.6 (to get Data::Dumper by default), or
# (2) to have Data::Dumper already installed.
# Data::Dumper is a very, very handy module, but it wasn't in the default Perl
view all matches for this distribution
view release on metacpan or search on metacpan
If your Modified Version has been derived from a Modified Version made
by someone other than you, you are nevertheless required to ensure that
your Modified Version complies with the requirements of this license.
This license does not grant you the right to use any trademark, service
mark, tradename, or logo of the Copyright Holder.
This license includes the non-exclusive, worldwide, free-of-charge
patent license to make, have made, use, offer to sell, sell, import and
otherwise transfer the Package with respect to any patent claims
licensable by the Copyright Holder that are necessarily infringed by the
view all matches for this distribution
view release on metacpan or search on metacpan
- ACACA exists!
- 15 authors
- Released at UNIX epoch 1234567890 ...give or take.
_ -.-. .... .- -. --. . ... _________________________________________
For more information, sift through the commit logs:
http://github.com/sanko/acme-cpanauthors-acme-cpanauthors-authors/commits/master
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Fetch.pm view on Meta::CPAN
LWP::Simple::mirror($args{url}, $file);
}
elsif (eval { require Net::FTP; 1 }) { eval {
# use Net::FTP to get past firewall
my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
$ftp->login("anonymous", 'anonymous@example.com');
$ftp->cwd($path);
$ftp->binary;
$ftp->get($file) or (warn("$!\n"), return);
$ftp->quit;
} }
inc/Module/Install/Fetch.pm view on Meta::CPAN
unless ($fh->open("|$ftp -n")) {
warn "Couldn't open ftp: $!\n";
chdir $dir; return;
}
my @dialog = split(/\n/, <<"END_FTP");
open $host
user anonymous anonymous\@example.com
cd $path
binary
get $file $file
quit
END_FTP
foreach (@dialog) { $fh->print("$_\n") }
$fh->close;
} }
else {
warn "No working 'ftp' program available!\n";
chdir $dir; return;
view all matches for this distribution
view release on metacpan or search on metacpan
@prefix dc: <http://purl.org/dc/terms/> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix doap-changeset: <http://ontologi.es/doap-changeset#> .
@prefix doap-deps: <http://ontologi.es/doap-deps#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://dev.perl.org/licenses/>
view all matches for this distribution
view release on metacpan or search on metacpan
MANIFEST.SKIP view on Meta::CPAN
embedded
cover_db
smoke.html
smoke.yaml
smoketee.txt
sqlnet.log
BUILD.SKIP
COVER.SKIP
CPAN.SKIP
t/000_standard__*
Debian_CPANTS.txt
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANAuthors/CPANTS/FiveOrMore.pm view on Meta::CPAN
q <MSERGEANT> => q <MSERGEANT>,
q <MSISK> => q <Matt Sisk>,
q <MSOUTHERN> => q <Mark Southern>,
q <MSTROUT> => q <Matt S Trout>,
q <MTHURN> => q <Martin 'Kingpin' Thurn>,
q <MTL> => q <RECRUIT Media Technology Labs>,
q <MUENALAN> => q <Murat Uenalan>,
q <MUIR> => q <David Muir Sharnoff>,
q <MWS> => q <Markus Winand>,
q <MZSANFORD> => q <Matt Sanford>,
q <NACHBAUR> => q <Michael A. Nachbaur>,
view all matches for this distribution
view release on metacpan or search on metacpan
},
{
"class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
"config" : {
"Dist::Zilla::Plugin::Test::CPAN::Changes" : {
"changelog" : "Changes"
}
},
"name" : "@Author::ETHER/Test::CPAN::Changes",
"version" : "0.012"
},
"untracked_files" : "die"
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [],
"allow_dirty_match" : [],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.34.1",
"repo_root" : "."
}
"untracked_files" : "die"
},
"Dist::Zilla::Role::Git::DirtyFiles" : {
"allow_dirty" : [],
"allow_dirty_match" : [],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.34.1",
"repo_root" : "."
}
"INSTALL",
"LICENCE",
"README.pod"
],
"allow_dirty_match" : [],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.34.1",
"repo_root" : "."
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
"config" : {
"Dist::Zilla::Plugin::Git::Tag" : {
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
"tag" : "v0.0108",
"tag_format" : "v%V",
"tag_message" : "v%v%t"
},
"Makefile.PL"
],
"allow_dirty_match" : [
"(?^:^lib/.*\\.pm$)"
],
"changelog" : "Changes"
},
"Dist::Zilla::Role::Git::Repo" : {
"git_version" : "2.34.1",
"repo_root" : "."
},
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Fetch.pm view on Meta::CPAN
LWP::Simple::mirror($args{url}, $file);
}
elsif (eval { require Net::FTP; 1 }) { eval {
# use Net::FTP to get past firewall
my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
$ftp->login("anonymous", 'anonymous@example.com');
$ftp->cwd($path);
$ftp->binary;
$ftp->get($file) or (warn("$!\n"), return);
$ftp->quit;
} }
inc/Module/Install/Fetch.pm view on Meta::CPAN
unless ($fh->open("|$ftp -n")) {
warn "Couldn't open ftp: $!\n";
chdir $dir; return;
}
my @dialog = split(/\n/, <<"END_FTP");
open $host
user anonymous anonymous\@example.com
cd $path
binary
get $file $file
quit
END_FTP
foreach (@dialog) { $fh->print("$_\n") }
$fh->close;
} }
else {
warn "No working 'ftp' program available!\n";
chdir $dir; return;
view all matches for this distribution
view release on metacpan or search on metacpan
[NextRelease]
format = %v %{EEE MMM d yyyy}d
[@Git]
changelog = Changes
commit_msg = Changes for version %v
tag_format = v%v
tag_message = %N v%v
push_to = origin
push_to = github
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANAuthors/Dutch.pm view on Meta::CPAN
my $authors = Acme::CPANAuthors -> new ('Dutch');
=head1 DESCRIPTION
The Netherlands is full of people smoking pot, wearing clogs and
living in wind mills. We don't do Perl.
=head1 BUGS
None.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Fetch.pm view on Meta::CPAN
LWP::Simple::mirror($args{url}, $file);
}
elsif (eval { require Net::FTP; 1 }) { eval {
# use Net::FTP to get past firewall
my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
$ftp->login("anonymous", 'anonymous@example.com');
$ftp->cwd($path);
$ftp->binary;
$ftp->get($file) or (warn("$!\n"), return);
$ftp->quit;
} }
inc/Module/Install/Fetch.pm view on Meta::CPAN
unless ($fh->open("|$ftp -n")) {
warn "Couldn't open ftp: $!\n";
chdir $dir; return;
}
my @dialog = split(/\n/, <<"END_FTP");
open $host
user anonymous anonymous\@example.com
cd $path
binary
get $file $file
quit
END_FTP
foreach (@dialog) { $fh->print("$_\n") }
$fh->close;
} }
else {
warn "No working 'ftp' program available!\n";
chdir $dir; return;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANAuthors/GitHub.pm view on Meta::CPAN
q(CCM) => q(Charles McGarvey),
q(CDANIEL) => q(Cam Daniel),
q(CDRAUG) => q(Carnë Draug),
q(CDZWM) => q(å¼ å«æ°),
q(CEBJYRE) => q(Glenn Fowler),
q(CELOGEEK) => q(celogeek),
q(CFAERBER) => q(Claus Färber),
q(CFOUTS) => q(Clay Fouts),
q(CFRANKS) => q(Carl Franks),
q(CFUHRMAN) => q(Christopher M. Fuhrman),
q(CGARBS) => q(Christian Garbs),
view all matches for this distribution
view release on metacpan or search on metacpan
devscript/update-data view on Meta::CPAN
use 5.010001;
use strict;
use warnings;
use Log::ger;
use IPC::System::Options 'system', -log=>1, -die=>1;
use List::Util qw(uniq);
our %SPEC;
my @skiplist = (
devscript/update-data view on Meta::CPAN
sub app {
my %args = @_;
UPDATE_MODULES: {
last unless $args{update_modules} // 1;
log_info "Installing/updating all Acme::CPANAuthors::* modules ...";
system "lcpan mods --namespace Acme::CPANAuthors | lcpanm -n";
} # UPDATE_MODULES
my %all_authors; # key=ac_mod, val=\@authors
LIST_AUTHORS: {
log_info "Listing all authors from all lists ...";
require Module::List;
my $res = Module::List::list_modules("Acme::CPANAuthors::", {list_modules=>1, recurse=>1});
my @modules = sort keys %$res;
require Acme::CPANAuthors;
MOD:
for my $mod (@modules) {
log_debug "Processing module $mod ...";
(my $ac_mod = $mod) =~ s/^Acme::CPANAuthors:://;
if (grep { $_ eq $ac_mod } @skiplist) {
log_info "Skipped list $ac_mod";
next MOD;
}
my @authors;
eval { (my $mod_pm = "$mod.pm") =~ s!::!/!g; require $mod_pm; my %authors = $mod->authors; @authors = sort keys %authors };
if ($@) {
log_warn "Can't extract authors from list $ac_mod: $@, skipped";
next MOD;
}
$all_authors{$ac_mod} = \@authors;
}
} # LIST_AUTHORS
devscript/update-data view on Meta::CPAN
}
use Perinci::CmdLine::Any;
Perinci::CmdLine::Any->new(
url => '/main/app',
log => 1,
)->run;
view all matches for this distribution
view release on metacpan or search on metacpan
Changelog for Acme-CPANAuthors-India
0.07 2013-09-12T08:43:05
- Switched to SHANTANU pluginBundle [Shantanu]
view all matches for this distribution
view release on metacpan or search on metacpan
},
{
"class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
"config" : {
"Dist::Zilla::Plugin::Test::CPAN::Changes" : {
"changelog" : "Changes"
}
},
"name" : "@Filter/Test::CPAN::Changes",
"version" : "0.012"
},
view all matches for this distribution
view release on metacpan or search on metacpan
bin/unregistered_japanese_authors view on Meta::CPAN
LEKUIN => 'ben lekuin',
LEOCHARRE => 'Leo Charre',
LEOHUA => 'leo hua',
LIMAONE => 'LIMAONE',
LITCHIE => 'Chaoji Li',
LIUL => 'liu logen',
LIUYUAN => 'liu yuan',
LJL => 'Jialin Li',
LMASARA => 'Luigino Masarati',
LODIN => 'Johan Lodin',
LSEBE => 'Lian Sebe',
view all matches for this distribution
view release on metacpan or search on metacpan
inc/expand_author_list.pm view on Meta::CPAN
sub rng {
return state $rng = Math::Random::MT->new( map { unpack 'L', $_ } q[Kent], q[ is ], q[a du], q[ll b], q[oy ] );
}
sub dolog { *STDERR->print("[32m$_[0][0m\n") }
sub mirror_whois {
my ($filename) = @_;
my $out = tempdir()->child($filename);
dolog("Fetching $filename to $out");
my $response = http()->mirror( 'http://www.cpan.org/authors/' . $filename, $out );
die "failed to fetch $filename: $response->{status} $response->{reason}\n"
if not $response->{success} and $response->{status} ne '304';
return "$out";
}
sub get_gravatar_url {
my ($authorid) = @_;
dolog("Resolving Gravatar for $authorid");
my $request = http()->get( 'http://api.metacpan.org/v0/author/' . $authorid ) // {};
my $content = $request->{content} // {};
my $json = json()->decode($content);
my $url = $json->{gravatar_url};
$url =~ s/s=\K130/80/g;
inc/expand_author_list.pm view on Meta::CPAN
my $author_hash = {};
my @authors;
for my $id ( path($source_file)->lines_raw( { chomp => 1 } ) ) {
dolog("$category / $id");
my $name = $author_data->author($id)->name;
$author_hash->{$id} = $name;
push @authors,
{
id => $id,
inc/expand_author_list.pm view on Meta::CPAN
=over 4
=item * L<< C<$type> on personalitypage.com|http://personalitypage.com/$type.html >>
=item * L<< C<$type> on typelogic.com|http://typelogic.com/$lctype.html >>
=item * L<< C<$type> on Wikipedia|https://en.wikipedia.org/wiki/$type >>
=back
view all matches for this distribution
view release on metacpan or search on metacpan
Version made by someone other than you, you are nevertheless required
to ensure that your Modified Version complies with the requirements of
this license.
(12) This license does not grant you the right to use any trademark,
service mark, tradename, or logo of the Copyright Holder.
(13) This license includes the non-exclusive, worldwide,
free-of-charge patent license to make, have made, use, offer to sell,
sell, import and otherwise transfer the Package with respect to any
patent claims licensable by the Copyright Holder that are necessarily
view all matches for this distribution
view release on metacpan or search on metacpan
[NextRelease]
format = %v %{EEE MMM d yyyy}d
[@Git]
changelog = Changes
commit_msg = Changes for version %v
tag_format = v%v
tag_message = %N v%v
push_to = origin
push_to = github
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Fetch.pm view on Meta::CPAN
LWP::Simple::mirror($args{url}, $file);
}
elsif (eval { require Net::FTP; 1 }) { eval {
# use Net::FTP to get past firewall
my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
$ftp->login("anonymous", 'anonymous@example.com');
$ftp->cwd($path);
$ftp->binary;
$ftp->get($file) or (warn("$!\n"), return);
$ftp->quit;
} }
inc/Module/Install/Fetch.pm view on Meta::CPAN
unless ($fh->open("|$ftp -n")) {
warn "Couldn't open ftp: $!\n";
chdir $dir; return;
}
my @dialog = split(/\n/, <<"END_FTP");
open $host
user anonymous anonymous\@example.com
cd $path
binary
get $file $file
quit
END_FTP
foreach (@dialog) { $fh->print("$_\n") }
$fh->close;
} }
else {
warn "No working 'ftp' program available!\n";
chdir $dir; return;
view all matches for this distribution
view release on metacpan or search on metacpan
warn <<'EOW'
*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***
If you're seeing this warning, your toolchain is really, really old* and you'll
almost certainly have problems installing CPAN modules from this century. But
never fear, dear user, for we have the technology to fix this!
If you're using CPAN.pm to install things, then you can upgrade it using:
cpan CPAN
view all matches for this distribution
view release on metacpan or search on metacpan
Version made by someone other than you, you are nevertheless required
to ensure that your Modified Version complies with the requirements of
this license.
(12) This license does not grant you the right to use any trademark,
service mark, tradename, or logo of the Copyright Holder.
(13) This license includes the non-exclusive, worldwide,
free-of-charge patent license to make, have made, use, offer to sell,
sell, import and otherwise transfer the Package with respect to any
patent claims licensable by the Copyright Holder that are necessarily
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANAuthors/Russian.pm view on Meta::CPAN
DEEMON => 'Dmitry Dorofeev',
DESPAIR => 'Walery Studennikov',
DMITRI => 'Dmitri Tikhonov',
DMITRY => 'Dmitry Nikolayev',
DMITRYNOD => 'ÐмиÑÑий ÐонÑÑанÑинов',
DMITRYSOL => 'Dmitri Sologoubenko',
DMOW => 'Dmitry Ovsyanko',
DPETROV => 'Denis Petrov',
DSAMZA => 'Dmitry Sagaev',
EGOR => 'Egor Korablev',
FEDOROV => 'Dmitry Fedorov',
lib/Acme/CPANAuthors/Russian.pm view on Meta::CPAN
DEEMON => 'Dmitry Dorofeev',
DESPAIR => 'Walery Studennikov',
DMITRI => 'Dmitri Tikhonov',
DMITRY => 'Dmitry Nikolayev',
DMITRYNOD => 'ÐмиÑÑий ÐонÑÑанÑинов',
DMITRYSOL => 'Dmitri Sologoubenko',
DMOW => 'Dmitry Ovsyanko',
DPETROV => 'Denis Petrov',
DSAMZA => 'Dmitry Sagaev',
EGOR => 'Egor Korablev',
FEDOROV => 'Dmitry Fedorov',
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install/Fetch.pm view on Meta::CPAN
LWP::Simple::mirror($args{url}, $file);
}
elsif (eval { require Net::FTP; 1 }) { eval {
# use Net::FTP to get past firewall
my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
$ftp->login("anonymous", 'anonymous@example.com');
$ftp->cwd($path);
$ftp->binary;
$ftp->get($file) or (warn("$!\n"), return);
$ftp->quit;
} }
inc/Module/Install/Fetch.pm view on Meta::CPAN
unless ($fh->open("|$ftp -n")) {
warn "Couldn't open ftp: $!\n";
chdir $dir; return;
}
my @dialog = split(/\n/, <<"END_FTP");
open $host
user anonymous anonymous\@example.com
cd $path
binary
get $file $file
quit
END_FTP
foreach (@dialog) { $fh->print("$_\n") }
$fh->close;
} }
else {
warn "No working 'ftp' program available!\n";
chdir $dir; return;
view all matches for this distribution
view release on metacpan or search on metacpan
t/data/authors/01mailrc.txt view on Meta::CPAN
alias AADLER "Andy Adler <adler@ncf.ca>"
alias AALLAN "Alasdair Allan <aa@astro.ex.ac.uk>"
alias AANZLOVAR "Alfred Anzlovar <alfred.anzlovar@logon.si>"
alias AAR "Alessandro Ranellucci <alex@primafila.net>"
alias AARDEN "Bret Aarden <aarden.1@osu.edu>"
alias AARONJJ "Aaron Johnson <solution@gina.net>"
alias AARONSCA "Aaron M. Scarisbrick <aaronsca@hotmail.com>"
alias AASSAD "Arnaud 'Arhuman' Assad <arhuman@hotmail.com>"
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANLists/Import/PERLANCAR/Advent/2014.pm view on Meta::CPAN
package Acme::CPANLists::Import::PERLANCAR::Advent::2014;
our $DATE = '2016-11-07'; # DATE
our $VERSION = '0.001'; # VERSION
our @Module_Lists = ({description=>"This list is generated by extracting module names mentioned in [http://blogs.perl.org/users/perlancar/2014/12/perlancars-2014-advent-calendar.html] (retrieved on 2016-11-07). Visit the URL for the full contents.",e...
1;
# ABSTRACT: Modules mentioned in PERLANCAR's 2014 advent calendar article series
__END__
lib/Acme/CPANLists/Import/PERLANCAR/Advent/2014.pm view on Meta::CPAN
This document describes version 0.001 of Acme::CPANLists::Import::PERLANCAR::Advent::2014 (from Perl distribution Acme-CPANLists-Import-PERLANCAR-Advent-2014), released on 2016-11-07.
=head1 DESCRIPTION
This module is generated by extracting module names mentioned in L<http://blogs.perl.org/users/perlancar/2014/12/perlancars-2014-advent-calendar.html> (retrieved on 2016-11-07). Visit the URL for the full contents.
=head1 MODULE LISTS
=head2 Modules mentioned in PERLANCAR's 2014 advent calendar article series
This list is generated by extracting module names mentioned in [http://blogs.perl.org/users/perlancar/2014/12/perlancars-2014-advent-calendar.html] (retrieved on 2016-11-07). Visit the URL for the full contents.
=over
=item * L<JSON::Path>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANLists/Import/PerlDancerAdvent/2010.pm view on Meta::CPAN
package Acme::CPANLists::Import::PerlDancerAdvent::2010;
our $DATE = '2016-11-24'; # DATE
our $VERSION = '0.001'; # VERSION
our @Module_Lists = ({description=>"This list is generated by extracting module names mentioned in [http://advent.perldancer.org/2010/] (retrieved on 2016-11-24). Visit the URL for the full contents.",entries=>[{module=>"Dancer"},{module=>"Dancer::Pl...
1;
# ABSTRACT: Modules mentioned in PerlDancer Advent Calendar 2010
__END__
lib/Acme/CPANLists/Import/PerlDancerAdvent/2010.pm view on Meta::CPAN
=item * L<DBIx::Class::ResultSet>
=item * L<Dancer::Logger::PSGI>
=item * L<Dancer::Logger::Syslog>
=item * L<Dancer::Plugin::Params::Normalization>
=item * L<Dancer::Plugin::SiteMap>
lib/Acme/CPANLists/Import/PerlDancerAdvent/2010.pm view on Meta::CPAN
=item * L<Dancer::Template::Xslate>
=item * L<HTML::Mason>
=item * L<Sys::Syslog>
=item * L<Template::Tiny>
=item * L<Tenjin>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANLists/Import/CombinationsAndPermutations.pm view on Meta::CPAN
package Acme::CPANLists::Import::CombinationsAndPermutations;
our $DATE = '2016-12-28'; # DATE
our $VERSION = '0.03'; # VERSION
our @Module_Lists = ({description=>"This list is generated by extracting module names mentioned in the article [http://blogs.perl.org/users/dana_jacobsen/2015/02/short-survey-of-modules-for-combinations-and-permutations.html] (retrieved on 2016-07-19...
1;
# ABSTRACT: Short survey of modules for combinations and permutations (2015)
__END__
lib/Acme/CPANLists/Import/CombinationsAndPermutations.pm view on Meta::CPAN
This document describes version 0.03 of Acme::CPANLists::Import::CombinationsAndPermutations (from Perl distribution Acme-CPANLists-Import), released on 2016-12-28.
=head1 DESCRIPTION
This module is generated by extracting module names mentioned in the article L<http://blogs.perl.org/users/dana_jacobsen/2015/02/short-survey-of-modules-for-combinations-and-permutations.html> (retrieved on 2016-07-19). For the full article, visit th...
=head1 MODULE LISTS
=head2 Short survey of modules for combinations and permutations (2015)
This list is generated by extracting module names mentioned in the article [http://blogs.perl.org/users/dana_jacobsen/2015/02/short-survey-of-modules-for-combinations-and-permutations.html] (retrieved on 2016-07-19). For the full article, visit the U...
=over
=item * L<Algorithm::Combinatorics>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Acme/CPANLists.pm view on Meta::CPAN
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 L<CPAN
Ratings|http://cpanratings.perl.org/> (where users rate and review a
distribution) or L<MetaCPAN|https://metacpan.org/> (which has a C<++> feature
where logged-in users can press a button to C<++> a module and the website will
tally the number of C<++>'s a distribution has) help to some extent. There are
also various blog posts by Perl programmers which review modules, e.g. L<CPAN
Module Reviews by Neil Bowers|http://neilb.org/reviews/>.
For categorizing CPAN authors, there are also the L<Acme::CPANAuthors> project,
complete with L<its own website|http://acme.cpanauthors.org/>.
view all matches for this distribution