Perl中use和require用法对比
本文和大家重点学习一下Perl use和require用法对比,这两个函数都是一个意思,加载和引用Perl的模块,或者是子程序,区别在于Perl use是在当前默认的里面去寻找,一旦模块不在指定的区域内的化,用Perl use是不可以引入的。
Perl use和require用法对比
对比(一)说明:
这两个函数都是一个意思,加载和引用Perl的模块,或者是子程序,
区别在于Perl use是在当前默认的里面去寻找,一旦模块不在指定的区域内的化,用Perl use是不可以引入的
第一、Perl use引入的名称不需要后缀名,而require需要
第二、Perl use语句是编译时引入的,require是运行时引入的
第三,Perl use引入模块的同时,也引入了模块的子模块。而require则不能引入,要在重新声明
Perl usemy
my中包含了一个Module.pm
而require
则需要引入requiremy requiremy::Module.pm
如果不想让Perl use引入Module.pm则可以用Perl userequire()加一对括号来说明即可
第四用Perl use引入模块是趋势,但是也不能说require没有存在的必要,视具体情况而定
对比(二)说明
区别一:跟require不同的是,Perl use只能用于模块的包含,也就是.pm文件。
比如:
Perl useMyModule;
实际上,编译器将从@INC指定的目录下去寻找MyModule.pm模块。如果模块名称中包含::双冒号,该双冒号将作为路径分隔符,相当于Unix下的/或者Windows下
的。如:
Perl useMyDirectory::MyModule;
编译器将从@INC指定的目录下的MyDirectory子目录去寻找MyModule模块,类似
如下路径:
C:PerllibMyDirectory
C:PerlextlibMyDirectory
C:PerlsitelibMyDirectory
区别二:两个都是包含,但是包含的条件是不一样的。require包含是发生在程序运行期,而Perl use包含是发生在编译期。学过C/C++的人比较容易理解。下面的例子是错误的:
Perl useConfig; if($Config{'osname'}eq"MSWin32") { Perl useWin32Module; } else { Perl useUnixModule; } |
正因为Perl use是发生在编译期,代码没有执行,所以$Config变量的值是无法判断的。在内部,Perl use其实调用了require和import静态函数。import()函数告诉包哪些特征将要被导入当前包中,这意味着用之前不必验证函数或者变量是否合法。而require是不会调用import()的。
Perl中use和require用法对比相关推荐
- Perl中use、require的用法和区别
2019独角兽企业重金招聘Python工程师标准>>> Exporter Module usage ...
- [Perl系列—] 2. Perl 中的引用用法
Perl 中的引用,为什么要使用引用? 对于熟悉C语言的开发者来说, 指针这个概念一定不陌生. Perl 的引用就是指针,可以指向变量.数组.哈希表甚至子程序. Perl5中的两种Perl引用类型为硬 ...
- Matlab中的随即置乱函数randperm和randsample函数用法对比
Matlab中的randperm和randsample函数用法对比 转载:http://blog.sina.com.cn/s/blog_a4034b280101k4gg.html 构建替代数据的时候, ...
- perl中last的用法
在C语言中,如果想要退出一个循环,我们可以使用break.在perl中,没有beak这个关键字,但是perl却也提供了另外一个关键字,让程序从循环中跳出,那就是last.现在我们就看一下last的使用 ...
- c语言中push函数pop函数用法,perl中pop与push函数
pop 操作将数组的最后一个元素取出并返回: @array=5..9; $fred=pop(@array); #$fred 得到 9,@array 现在为(5,6,7,8) $barney= ...
- python和R数据类型查看、赋值、列表、for循环、函数用法对比示例
python和R数据类型查看.赋值.列表.for循环.函数用法对比示例 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计 ...
- 【node】express中mysql的基本用法、连接池的使用、事务的回滚
[node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...
- 强大的Perl中的正则
转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2008/12/20/power-perl.html Perl的 ...
- Perl split字符串分割函数用法指南
本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中.这个Perl split函数使用规则表达式( ...
最新文章
- debian10 apache2使用ssl
- 【组队学习】【31期】 吃瓜教程——西瓜书+南瓜书
- nginx tomcat集群实现session共享
- n!的位数的快速确定(斯特林公式)
- React 实现 百度搜索框(简易)
- c++内联函数解析(inline)
- Activity中finish()和onDestroy()的区别
- gulp错误GulpUglifyError: unable to minify JavaScript解决
- linux内核寻址,深入理解Linux内核-内存寻址
- java 定时器 数据库_java实现定时器,定时修改数据库代码
- 递归算法实例:阶乘(vb.net代码)
- 一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(2)--添加一个布局和表格
- python爬取网易云音乐数据
- 计算机机房实训计划,计算机专业实习计划安排.docx
- 丹尼尔·惠灵顿(Daniel Wellington)选择一洽的理由
- 舍得网开发者碰到的问题及解决(转)
- 鸿蒙系统一体机使用教程,华为视频会议系统TE30(华为新一体机)(示例代码)
- Android显示——一帧的渲染过程(VSYNC)
- 腾讯安全御见威胁情报中心截获粗鲁的矿工,三种方式猛攻企业网络
- linux入侵检测工具之aide