本文和大家重点学习一下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用法对比相关推荐

  1. Perl中use、require的用法和区别

    2019独角兽企业重金招聘Python工程师标准>>> Exporter Module usage                                           ...

  2. [Perl系列—] 2. Perl 中的引用用法

    Perl 中的引用,为什么要使用引用? 对于熟悉C语言的开发者来说, 指针这个概念一定不陌生. Perl 的引用就是指针,可以指向变量.数组.哈希表甚至子程序. Perl5中的两种Perl引用类型为硬 ...

  3. Matlab中的随即置乱函数randperm和randsample函数用法对比

    Matlab中的randperm和randsample函数用法对比 转载:http://blog.sina.com.cn/s/blog_a4034b280101k4gg.html 构建替代数据的时候, ...

  4. perl中last的用法

    在C语言中,如果想要退出一个循环,我们可以使用break.在perl中,没有beak这个关键字,但是perl却也提供了另外一个关键字,让程序从循环中跳出,那就是last.现在我们就看一下last的使用 ...

  5. c语言中push函数pop函数用法,perl中pop与push函数

    pop 操作将数组的最后一个元素取出并返回: @array=5..9; $fred=pop(@array);      #$fred 得到 9,@array 现在为(5,6,7,8) $barney= ...

  6. python和R数据类型查看、赋值、列表、for循环、函数用法对比示例

    python和R数据类型查看.赋值.列表.for循环.函数用法对比示例 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计 ...

  7. 【node】express中mysql的基本用法、连接池的使用、事务的回滚

    [node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...

  8. 强大的Perl中的正则

    转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2008/12/20/power-perl.html Perl的 ...

  9. Perl split字符串分割函数用法指南

    本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中.这个Perl split函数使用规则表达式( ...

最新文章

  1. debian10 apache2使用ssl
  2. 【组队学习】【31期】 吃瓜教程——西瓜书+南瓜书
  3. nginx tomcat集群实现session共享
  4. n!的位数的快速确定(斯特林公式)
  5. React 实现 百度搜索框(简易)
  6. c++内联函数解析(inline)
  7. Activity中finish()和onDestroy()的区别
  8. gulp错误GulpUglifyError: unable to minify JavaScript解决
  9. linux内核寻址,深入理解Linux内核-内存寻址
  10. java 定时器 数据库_java实现定时器,定时修改数据库代码
  11. 递归算法实例:阶乘(vb.net代码)
  12. 一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(2)--添加一个布局和表格
  13. python爬取网易云音乐数据
  14. 计算机机房实训计划,计算机专业实习计划安排.docx
  15. 丹尼尔·惠灵顿(Daniel Wellington)选择一洽的理由
  16. 舍得网开发者碰到的问题及解决(转)
  17. 鸿蒙系统一体机使用教程,华为视频会议系统TE30(华为新一体机)(示例代码)
  18. Android显示——一帧的渲染过程(VSYNC)
  19. 腾讯安全御见威胁情报中心截获粗鲁的矿工,三种方式猛攻企业网络
  20. linux入侵检测工具之aide

热门文章

  1. 学习笔记:隋唐人的日常生活——隋唐的城市生活(上)
  2. 经济与社会发展研究杂志社经济与社会发展研究编辑部2022年第30期目录
  3. Git的作用和常用git命令
  4. 企业服务架构演进-走上造轮子之路
  5. Android文本长按qq风格,Android仿QQ、微信聊天界面长按提示框效果
  6. Excel打开一片空白,需再次双击进入解决办法
  7. 最新的一台联想式台式主机如何检查型号信息
  8. tf.argmax()的详细用法
  9. (纯转载)一个真正符合中国国情的工作流设计参考(包括PHP实现)
  10. 要不,和机器聊聊?-- 小谈Bot系统