首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么用require::UserAgent导入LWP::UserAgent而不是使用LWP::UserAgent?

为什么用require::UserAgent导入LWP::UserAgent而不是使用LWP::UserAgent?
EN

Stack Overflow用户
提问于 2011-06-29 09:50:45
回答 3查看 399关注 0票数 2

我对这门语言非常陌生,但我之前一直在使用use导入特定的模块,

为什么LWP::UserAgent使用require来完成与perldoc LWP::UserAgent相同的工作

代码语言:javascript
运行
复制
require LWP::UserAgent;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-29 10:09:15

代码语言:javascript
运行
复制
use LWP::UserAgent;

等同于

代码语言:javascript
运行
复制
BEGIN {
    require LWP::UserAgent;
    import LWP::UserAgent;
}

如果require LWP::UserAgent;是可接受的,这将表明import对LWP::UserAgent没有做任何事情。也许文档使用require的意义在于巧妙地暗示这一点?

因此,require LWP::UserAgent;use LWP::UserAgent;之间的唯一区别是何时执行require。对于前者,它发生在整个文件编译完成之后。对于后者,一旦该语句被编译,它就会发生。实际上,面向对象的模块没有太大的区别。

就我个人而言,我使用

代码语言:javascript
运行
复制
use LWP::UserAgent qw( );

这是相同的

代码语言:javascript
运行
复制
BEGIN {
    require LWP::UserAgent;
}

这样,我就可以保证不会导入任何我不想要的东西,并且我会使用我对其他模块使用的熟悉的use

  • require
  • use
票数 3
EN

Stack Overflow用户

发布于 2011-06-29 09:57:37

require Module::Name与use具有相同的效果,只是在运行时,而不是在编译时。当您想有条件地需要一个模块时,这有时是有利的。我不认为医生有什么特别的理由说需要而不是使用。

票数 1
EN

Stack Overflow用户

发布于 2012-10-10 19:01:12

这不是一个理想的答案,但也许对像我这样从谷歌来到这里的人有所帮助。

对于错误消息:在./apache_acceses第86行没有找到LWP::UserAgent。

解决方案: apt-get install libwww-perl

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6514961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档