我是很新,这种语言,但我一直在使用use
之前导入特定的模块,为什么要通过要求LWP :: UserAgent而不是使用LWP :: UserAgent来导入LWP :: UserAgent?
为什么LWP::UserAgent
使用require
来做这项工作从perldoc LWP::UserAgent
:
require LWP::UserAgent;
我是很新,这种语言,但我一直在使用use
之前导入特定的模块,为什么要通过要求LWP :: UserAgent而不是使用LWP :: UserAgent来导入LWP :: UserAgent?
为什么LWP::UserAgent
使用require
来做这项工作从perldoc LWP::UserAgent
:
require LWP::UserAgent;
use LWP::UserAgent;
相同
BEGIN {
require LWP::UserAgent;
import LWP::UserAgent;
}
如果require LWP::UserAgent;
是可以接受的,这正好说明import
无助于LWP ::用户代理。也许文档中使用require
的要点是巧妙地暗示了这一点?
require LWP::UserAgent;
和use LWP::UserAgent;
之间的唯一区别是require
执行时。对于前者,它在整个文件被编译之后发生。对于后者,只要该声明已编译完成就会发生。实际上,面向对象的模块没有太大的区别。
就个人而言,我用
use LWP::UserAgent qw();
这是一样
BEGIN {
require LWP::UserAgent;
}
这样的话,我保证不会输入任何东西,我不想,我用的是熟悉的use
我用于其他模块。
这不是理想的答案,但也许有助于从谁谷歌来作为一
对于消息错误某人:在没有找到LWP :: UserAgent的。/apache_accesses line 86.
解决方案: apt-get install libwww-perl
这个问题是关于'use'与'require'的关系,以LWP为例。这不是要让LWP工作。另外,你的答案是Debian特有的。 – amon
我知道,但我寻找这灵魂,并从谷歌首先得到这个网站。 –
所以区别在于'import LWP :: UserAgent; ',这到底是什么呢? – Learning
'import LWP :: UserAgent'是'LWP :: UserAgent-> import()'的变体语法;它调用一个名为'import'的类方法。通常情况下,这会使用[Exporter](http://search.cpan.org/perldoc?Exporter)模块将函数导出到调用者的名称空间中,但它实际上可以执行模块作者选择执行的任何操作。 – cjm