我正在查看Perl发行版中base.pm
的来源,我没有看到它与“非实用”模块有什么区别。如果use base
是一个“编译指示”,它是否与use Foo
有任何根本的不同,其中Foo
是任何模块?是什么使模块成为实用模块?
8
A
回答
7
编译指示没有明确的定义。最接近官方的是perlpragma。
- 他们通常修改语言或语法分析器的行为。
- 他们的影响通常在词汇范围内。
我个人认为这些都是要求(它似乎是perlpragma确实太少),但核心模块vars和subs都记录是编译指示,即使他们的效果并不词法范围。
base和lib不符合任一标准。他们所做的是向“Perl本身”提供信息。我想这也可以作为一个附注。
我认为我的模块use syntax qw(loop);
是务实的。 (无耻插头!)
1
虽然名字是在很多情况下经常使用,我通常认为一个编译为一个使用提示哈希%^H
作为perldoc perlpragma记录什么的。这意味着主要区别是动作必须在编译时; use
工作,而require
(不在BEGIN)不工作。这是“实用模块”(通过这个定义)与其他模块之间的主要区别。通过该定义,vars
,subs
,base
或lib
都不是编译指示。
相关问题
- 1. 使用什么Perl模块?
- 2. 使用模块模式,为什么引用是未定义的?
- 3. 为什么Python使用模块?
- 4. 为什么要使用Angular模块?
- 5. 什么是node.js模块?
- 6. 什么是CSS3模块?
- 7. 什么是SQL Server模块?
- 8. 什么是“加载模块”?
- 9. 什么是Apache contrib模块?
- 10. 为什么模块冲突?
- 11. 为什么ActiveRecord不是一个模块?
- 12. 为php模块选择什么模式?
- 13. “使用模块”之后代码块的含义是什么?
- 14. 为什么类对象有权访问内核模块中的实例模块?
- 15. 为什么InstanceMethods模块已被弃用?
- 16. 为什么模块'ui.bootstrap'不可用?
- 17. 为什么Angular 2将模块名称命名为模块NgModule,而不仅仅是模块
- 18. 为什么导入python模块不导入嵌套模块?
- 19. 为什么Ruby模块包含排除模块的单例类?
- 20. 为什么角模块可以使用其他模块的依赖关系?
- 21. 为什么'__main__'中的导入模块不允许multiprocessig使用模块?
- 22. 将Ant模块转换为Maven,最佳实践是什么?
- 23. Ansible模板模块和复制模块有什么区别?
- 24. 使用ES6模块而不是显示模块模式的额外优势是什么?
- 25. pub/sub与gproc - 模块是什么?
- 26. Perl Tk模块的缺点是什么?
- 27. 什么是python __all__模块级变量?
- 28. 什么是highstock.js - 模块 - 画布工具?
- 29. 什么是冻结的Python模块?
- 30. 什么是!在Scanf.Scanning模块中?
忘了实际覆盖base.pm.解决了这个遗漏。 – ikegami 2013-03-14 23:42:45
我的评论成了它自己的答案:-) – 2013-03-15 01:37:28