为什么通过 require LWP::UserAgent 导入 LWP::UserAgent 而不是 use LWP::UserAgent?

问题描述 投票:0回答:2

我对这种语言很陌生,但我之前一直使用

use
导入特定模块,

为什么

LWP::UserAgent
使用
require
来完成
perldoc LWP::UserAgent
中的工作:

require LWP::UserAgent;
perl require perl-module
2个回答
3
投票
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


0
投票

require Module::Name
use
具有相同的效果,仅在运行时,而不是编译时。当您想有条件地需要一个模块时,这有时是有利的。我认为医生没有任何特殊理由说
require
而不是
use

© www.soinside.com 2019 - 2024. All rights reserved.