在 Perl 中,.pm(Perl 模块)和 .pl(Perl 脚本)文件有什么区别?
.pm
(Perl 模块)和 .pl
(Perl 脚本)文件有什么区别?
另请告诉我为什么我们从文件返回 1
。如果返回 2 或其他任何值,它不会生成任何错误,那么为什么我们从 Perl 模块返回 1
呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从本质上讲,您使用的文件扩展名对于
perl
如何解释这些文件没有任何影响。但是,将模块放入遵循包名称后面的特定目录结构的
.pm
文件中会带来便利。因此,如果您有一个模块Example::Plot::FourD
并将其放入 Example/Plot/FourD.pm 中="http://perldoc.perl.org/perlvar.html#%40INC" rel="noreferrer">@INC
,然后use
和require
当给定包名称时,将执行正确的操作,如use Example::Plot::FourD
中所示。use
所做的只是从提供的包名称中找出文件名,在BEGIN
块中require
并调用import
代码> 包装上。没有什么可以阻止您不使用use
而是手动执行这些步骤。例如,下面我将
Example::Plot::FourD
包放入名为t.pl
的文件中,并将其加载到文件s.pl 中的脚本中
。此示例表明模块文件不必以
1
结尾,任何 true 值都可以。At the very core, the file extension you use makes no difference as to how
perl
interprets those files.However, putting modules in
.pm
files following a certain directory structure that follows the package name provides a convenience. So, if you have a moduleExample::Plot::FourD
and you put it in a directoryExample/Plot/FourD.pm
in a path in your@INC
, thenuse
andrequire
will do the right thing when given the package name as inuse Example::Plot::FourD
.All
use
does is to figure out the filename from the package name provided,require
it in aBEGIN
block and invokeimport
on the package. There is nothing preventing you from not usinguse
but taking those steps manually.For example, below I put the
Example::Plot::FourD
package in a file calledt.pl
, loaded it in a script in files.pl
.This example shows that module files do not have to end in
1
, any true value will do..pl
是一个脚本。在
.pm
(Perl 模块) 中,您具有可以从其他 Perl 脚本使用的函数:A
.pl
is a single script.In
.pm
(Perl Module) you have functions that you can use from other Perl scripts: