我对这门语言非常陌生,但我之前一直在使用use
导入特定的模块,
为什么LWP::UserAgent
使用require
来完成与perldoc LWP::UserAgent
相同的工作
require LWP::UserAgent;
发布于 2011-06-29 10:09:15
use LWP::UserAgent;
等同于
BEGIN {
require LWP::UserAgent;
import LWP::UserAgent;
}
如果require LWP::UserAgent;
是可接受的,这将表明import
对LWP::UserAgent没有做任何事情。也许文档使用require
的意义在于巧妙地暗示这一点?
因此,require LWP::UserAgent;
和use LWP::UserAgent;
之间的唯一区别是何时执行require
。对于前者,它发生在整个文件编译完成之后。对于后者,一旦该语句被编译,它就会发生。实际上,面向对象的模块没有太大的区别。
就我个人而言,我使用
use LWP::UserAgent qw( );
这是相同的
BEGIN {
require LWP::UserAgent;
}
这样,我就可以保证不会导入任何我不想要的东西,并且我会使用我对其他模块使用的熟悉的use
。
require
use
发布于 2011-06-29 09:57:37
require Module::Name与use具有相同的效果,只是在运行时,而不是在编译时。当您想有条件地需要一个模块时,这有时是有利的。我不认为医生有什么特别的理由说需要而不是使用。
发布于 2012-10-10 19:01:12
这不是一个理想的答案,但也许对像我这样从谷歌来到这里的人有所帮助。
对于错误消息:在./apache_acceses第86行没有找到LWP::UserAgent。
解决方案: apt-get install libwww-perl
https://stackoverflow.com/questions/6514961
复制相似问题