2009年12月23日星期三

[PerlChina] CN Perl Advent Day 23: CPANDB

http://perlchina.org/advent/2009/Top100.html

=for advent_year 2009

=for advent_day 23

=for advent_title CPANDB

=for advent_author Fayland Lam

CPAN 数据是笔财富,而 M<CPANDB> 是这笔财富的一个入口。

对 CPANDB 的一个直接应用是 M<CPAN::WWW::Top100::Generator> 而对应的网站是
A<http://ali.as/top100/>。这个网站包括了一些 CPAN 上依赖最重,被依赖最重或失败最多的一批模块列表。

下面的代码可以得到类似 A<http://cpants.perl.org/dist/used_by/Moose> 的结果

=begin code

use CPANDB;

my $moose_prereq = CPANDB::Requires->select(
'where module=?',
'Moose'
);

foreach my $prereq ( @$moose_prereq ) {
my $dist_name = $prereq->distribution;
print "$dist_name\n";
}

=end code

如上只是个简单的应用,找到所有依赖 Moose 的模块。在 M<Task::Padre::Plugins>
里,我们就是用类似的方法找出所有应该 Padre 的 Plugins. 脚本请参考
A<http://svn.perlide.org/padre/trunk/Task-Padre-Plugins/auto_generate.pl>

更多的应用可以参考 CPANDB 的文档,查看该 SQLite 的数据结构。

谢谢。

--
Fayland Lam // http://www.fayland.org/

--

您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

没有评论: