在Perl中,加载模块的use和require之间有什么区别?
使用My::Module和要求My::Module有什么区别?来自:在Perl中,加载模块的use和require之间有什么区别?,perl,module,require,Perl,Module,Require,使用My::Module和要求My::Module有什么区别?来自: 使用模块类似于要求模块,除了使用 4.1:在编译时而不是运行时加载模块 4.2:将符号和语义从该包导入当前包 使用在编译时运行,而要求在运行时运行。函数: use ModuleName; BEGIN { require ModuleName; ModuleName->import; } 相当于使用函数的以下代码: use ModuleName; BEGIN { require ModuleN
使用模块
类似于要求模块
,除了使用
4.1:在编译时而不是运行时加载模块
4.2:将符号和语义从该包导入当前包
使用
在编译时运行,而要求
在运行时运行。函数:
use ModuleName;
BEGIN {
require ModuleName;
ModuleName->import;
}
相当于使用函数的以下代码:
use ModuleName;
BEGIN {
require ModuleName;
ModuleName->import;
}
该块使解析器一看到该代码就立即运行该代码。require
加载模块或正在尝试。然后调用模块的import
函数。import
函数可以做各种事情,但它通常将函数加载到使用它的命名空间中(通常与模块一起使用)
需要注意的是,在这种情况下不会调用import:
use ModuleName ();
在这种情况下,它相当于
BEGIN {
require ModuleName;
}
BEGIN { require Module; Module->import( LIST ); }
Perl附带了大量文档。每个人都将受益于每几个月至少阅读一次整个文档
C:\>
否则,require
要求创建库文件
如果还没有,包括在内
包括。该文件通过
执行文件机制,这是
基本上只是各种评估
但要注意的是,词汇变量
在调用脚本中
对包含的代码不可见。有
语义与下面类似
子程序:
。。。等等,同样,
C:\>
将一些语义导入到
来自命名模块的当前包,
通常通过对某些
将子例程或变量名输入到
包裹它完全等同于
BEGIN {
require ModuleName;
}
BEGIN { require Module; Module->import( LIST ); }
除了模块必须是一个裸字
。。。等
还有一个问题,尽管我认为它的信息量不如上面提到的。不要忘记调用import
。这是他们在Perl测试和工作面试中寻找的答案。你需要记住这个@在HALLA中,我喜欢为我的错误内存留一点空间。除了出色的perldoc
命令外,您还可以通过Ah访问所有相同的文档。你的kbd标签使你很难分辨什么是链接(以及呈现的不是很漂亮)。@Ether:但这是m。不管怎样,这可能很容易自己解决,但对于初学者来说,这绝对是一个非常好的Perl问题。我不明白为什么它不应该在stackoverflow上。危害在哪里?