8

我只是比较不同“存档网络”的数字,如 CPAN、CTAN、rubygems.org 等。CPAN 显示两个非常不同的数字:

  • 105,774 个模块
  • 24,657 次分发

由于我不是 Perl 程序员(我只是在准备大学演讲),我不熟悉 Perl 的措辞。我试图查找它们,只发现“模块”是由 Perl 本身定义的。据我了解,模块是具有命名空间的任何文件。

但是,我找不到任何关于什么是分布的声明。甚至 CPAN 也只显示模块列表,或者它们一起使用这两个词(作为“模块分布”)。任何人都可以清除我的想法吗?

4

1 回答 1

17

一个发行版将包含一个或多个模块、文档、构建脚本,通常还包含一个测试套件、文件清单、自述文件、更改日志和许可证信息。在一个发行版中捆绑在一起的模块通常是完整类库的一部分,或者至少所有相关工具都分为直观命名的包。

以核心IO分布为例,您可以看到它包含以下模块:

  • IO——加载各种IO模块
  • IO::Dir - 为目录句柄提供对象方法
  • IO::File - 为文件句柄提供对象方法
  • IO::Handle - 为 I/O 句柄提供对象方法
  • IO::Pipe - 为管道提供对象方法
  • IO::Poll - 系统轮询调用的对象接口
  • IO::Seekable - 为 I/O 对象提供基于搜索的方法
  • IO::Select - select 系统调用的 OO 接口
  • IO::Socket - 套接字通信的对象接口
  • IO::Socket::INET - AF_INET 域套接字的对象接口
  • IO::Socket::UNIX - AF_UNIX 域套接字的对象接口
于 2012-04-16T21:03:38.183 回答