库文件和模块有什么区别?

Cha*_*hak 9 perl

Perl中的库文件和模块有什么区别?

ike*_*ami 14

它是所有Perl代码perl.所有区别都纯粹是惯用的.

Perl代码意味着包含使用package指令:

  • 被称为"模块".
  • 通常有扩展名.pm.必须有此扩展名use才能找到它们.
  • 应始终加载require,可能通过use.
  • 更加模块化,更好地支持CPAN.

Perl代码意味着包含不使用package指令:

  • 被称为"图书馆".
  • 通常有扩展名.pl.
  • 应该总是加载do.
  • 污染调用者的命名空间.
  • 通常表示不合格的设计.避免这些!

Perl代码意味着由解释器直接执行:

  • 被称为"剧本".
  • 通常有扩展名.pl,或者根本没有扩展名.
  • 可能会以shebang(#!)行开头,因此可以在不指定的情况下启动它们perl.


gee*_*aur 7

库文件(我假设你的意思是require 'foo.pl'这里的东西)是一种过时的(pre-Perl 5)形式的外部模块.在大多数情况下,你不应该需要关心更多,虽然也仍然存在一些Perl的4个装置,因此仍有一些Perl代码是保持与他们(向后兼容,还有这根本从未更新过一些代码,仍然加载getcwd.pl等).