设为首页 收藏本站
查看: 1118|回复: 0

[经验分享] Perl模块用法指南

[复制链接]

尚未签到

发表于 2018-8-31 07:57:09 | 显示全部楼层 |阅读模式
  本文和大家重点讨论一下Perl模块的应用,多数大型程序都分割成多个部件,每一部件通常含有一个或多个子程序及相关的变量,执行特定的一个或多个任务。集合了变量和子程序的部件称为程序Perl模块。
  Perl模块
  1、创建Perl模块
  Perl5中用包来创建Perl模块,方法是创建包并将之存在同名的文件中。例如,名为Mymodult的包存贮在文件Mymodult.pm中(扩展名.pm表示PerlModule)。下例的Perl模块Mymodult含有子程序myfunc1和myfunc2及变量$myvar1和$myvar2。
  


  • 1:#!/usr/local/bin/perl
  • 2:
  • 3:packageMymodule;
  • 4:requireExporter;
  • 5:@ISA=qw(Exporter);
  • 6:@EXPORT=qw(myfunc1myfunc2);
  • 7:@EXPORT_OK=qw($myvar1$myvar2);
  • 8:
  • 9:submyfunc1{
  • 10:$myvar1+=1;
  • 11:}
  • 12:
  • 13:submyfunc2{
  • 14:$myvar2+=2;
  • 15:}
  

  第3~7行是标准的PerlPerl模块定义方式。第3行定义包,第4行包含内置PerlPerl模块Exporter,6、7行进行子程序和变量的输出以与外界联系。第6行创建名为@EXPORT的特殊数组,该数组中的子程序可以被其它程序调用,这里,myfunc1和myfunc2可以被访问。其它任何在Perl模块中定义但没有赋给数组@EXPORT的子程序都是私有的,只能在Perl模块内部调用。第7行创建另一个名为@EXPORT_OK的特殊数组,其中含有可被外部程序访问的变量,这里含有$myvar1和$myvar2。
  2、导入Perl模块
  将Perl模块导入你的Perl程序中使用use语句,如下句导入了MymodulePerl模块:
  
useMymodule;
  
这样,Perl模块Mymodule中的子程序和变量就可以使用了。
  
取消导入Perl模块使用no语句,如下句取消了MymodulePerl模块的导入:
  
noMymodule;
  
下面看一个导入Perl模块和取消导入的例子,使用integerPerl模块要求所有数字运算基于整数,浮点数在运算前均被转化为整数。
  


  • 1:#!/usr/local/bin/perl
  • 2:
  • 3:useinteger;
  • 4:$result=2.4+2.4;
  • 5:print("$result\n");
  • 6:
  • 7:nointeger;
  • 8:$result=2.4+2.4;
  • 9:print("$result\n");
  

  程序输出如下:
  $program
  
4
  
4.8
  
$
  
如果use或no语句出现在语句块中,则只在该块的有效范围内起作用,如:
  


  • useinteger;
  • $result1=2.4+2.4;
  • if($result1==4){
  • nointeger;
  • $result2=3.4+3.4;
  • }
  • $result3=4.4+4.4;
  

  结果输出如下:
  4
  
6.8
  
8
  
这里,no语句只在if语句中有效,出了if语句仍使用integerPerl模块,因此4.4在做加法前被转化成了4。
  3、预定义Perl模块
  Perl5提供了许多有用的预定义Perl模块,可以用use导入和no语句取消。下面是库中最有用的一些Perl模块:
DSC0000.png

  Perl文档中有完整的预定义Perl模块列表。
  
注:世界各地的Perl5用户写了许多有用的Perl模块,CPAN(ComprehensivePerlArchiveNetwork)的Perl文档有其完整的列表。关于CPAN的更多信息见其网址:http://www.perl.com/perl/CPAN/README.html。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-559087-1-1.html 上篇帖子: Perl哈希的用法总结 下篇帖子: Perl中正则表达式用法总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表