加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

【Perl】 Require 和 USE的区别

发布时间:2020-12-16 00:41:02 所属栏目:大数据 来源:网络整理
导读:1 都是引入模块,语法: ?????? use ModuleName; ?????? require ModuleName; ???ModuleName 不必加pm扩展名 ? 2 区别之一,use语句是编译时引入的,require是运行时引入的。 ? ? 3 区别之二,use语句所做的事情比require要多一点点,一条 ???????? use Modul
1 都是引入模块,语法:
?????? use ModuleName;
?????? require ModuleName;
???ModuleName 不必加pm扩展名
?
2 区别之一,use语句是编译时引入的,require是运行时引入的。
?
?
3 区别之二,use语句所做的事情比require要多一点点,一条
???????? use ModuleName;
语句大致相当于
???????? require ModuleName;
???????? import? ModuleName::(@EXPORT);
上面两句的内容。
也就是说,哪怕只用 use ModuleName,当前包的命名空间都会被ModuleName中的@EXPORT中的函数和变量“玷污”,好处是使用 ModeleName中的函数和变量不不必加包前缀 Modelename::
?
4 如果要use 语句不会“玷污”当前的包命名空间,直接用
???????? use ModuleName () #一个空括号
就行了,这不表示不能用ModuleName的函数和变量,只是用时需要加包前缀,如
??? $xyz = ModuleName::function1();
?
5 有时除了引入默认的@EXPORT中的函数和变量,还可以引入附加的函数和变量,这个列表定义在ModuleName 的@EXPORT_OK数组中。可以用
?
???? use ModuleName (@EXPORT_OK的一个片段)
?
这样的方式来引入
?
6?用use能在编译时就发现问题,用use是未来的趋势。



T he use function allows Perl modules and pragmas to be imported into your program at compile time. The use function will not import a module if the module's filename does not have the .pm extension. The require function does the same thing but does not do imports and loads the module at runtime .

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读