库文件和模块有什么区别?
Perl中的库文件和模块有什么区别?
这都是perl的Perl代码。 所有的区别纯粹是惯用的。
 用于包含的Perl代码使用package指令: 
- 被称为“模块”。
-  通常有扩展名.pm。 必须有这个扩展名才能find它们。
-  应始终加载require,可能通过use。
- 更多的模块化,CPAN更好的支持。
  Perl代码意味着不包含package指令: 
- 被称为“图书馆”。
-  通常有扩展名.pl。
-  应该总是装着do。
- 污染调用者的名称空间。
- 通常表示不合格的devise。 避免这些!
Perl代码的意思是由解释器直接执行:
- 称为“脚本”。
-  通常有扩展名.pl,或根本没有。
-  可能会从一个shebang( #!)行开始,这样他们可以在不指定perl情况下启动。
 库文件(我假设你的意思是在这里require 'foo.pl'东西)是一个过时的(pre-Perl 5)forms的外部模块。 大多数情况下,你不需要关心,虽然还有一些Perl 4的安装,所以仍然有一些Perl代码保持向后兼容(还有一些代码是从来没有更新,仍然加载getcwd.pl等)。 
没有。 它们都是包含Perl代码的文件。 不过,以下是一些可能的情况差异。
-  一个perl可执行文件更可能有一个#!/bin/perlshbang。
-  旧的.plPerl 库 (因此'p'+'l')比.pm模块更可能期望被需要 。
-   Perl 5样式( .pm)模块更可能使用Exporter,尽pipe更新的模块也不会导出任何内容。