1、编程语言 Perl 模块用法指南本文和大家重点讨论一下 Perl 模块的应用,多数大型程序都分割成多个部件,每一部件通常含有一个或多个子程序及相关的变量,执行特定的一个或多个任务。集合了变量和子程序的部件称为程序 Perl 模块。Perl 模块1、创建 Perl 模块Perl5 中用包来创建 Perl 模块,方法是创建包并将之存在同名的文件中。例如,名为Mymodult 的包存贮在文件 Mymodult.pm 中(扩展名.pm 表示 PerlModule)。 下例的 Perl 模块 Mymodult 含有子程序 myfunc1 和 myfunc2 及变量$myvar1 和$myvar2。1.
2、1:#!/usr/local/bin/perl 2. 2: 3. 3:packageMymodule; 4. 4:requireExporter; 5. 5:ISA=qw(Exporter); 6. 6:EXPORT=qw(myfunc1myfunc2); 7. 7:EXPORT_OK=qw($myvar1$myvar2); 8. 8: 9. 9:submyfunc1 10. 10:$myvar1+=1; 11. 11: 12. 12: 13. 13:submyfunc2 14. 14:$myvar2+=2; 15. 15: 第 37 行是标准的 PerlPerl 模块定义方式。第 3 行定义
3、包,第 4 行包含内置PerlPerl 模块 Exporter,6、7 行进行子程序和变量的输出以与外界联系。第 6 行创建名为EXPORT 的特殊数组, 该数组中的子程序可以被其它程序调用, 这里,myfunc1 和 myfunc2 可以被访问。其它任何在 Perl 模块中定义但没有赋给数组EXPORT 的子程序都是私有的,只能在 Perl 模块内部调用。第 7 行创建另一个名为EXPORT_OK 的特殊数组,其中含有可被外部程序访问的变量,这里含有$myvar1 和$myvar2。2、导入 Perl 模块将 Perl 模块导入你的 Perl 程序中使用 use 语句,如下句导入了 Mymo
4、dulePerl 模块:useMymodule;这样,Perl 模块 Mymodule 中的子程序和变量就可以使用了。取消导入 Perl 模块使用 no 语句,如下句取消了 MymodulePerl 模块的导入:noMymodule;下面看一个导入 Perl 模块和取消导入的例子,使用 integerPerl 模块要求所有数字运算基于整数,浮点数在运算前均被转化为整数。1. 1:#!/usr/local/bin/perl 2. 2: 3. 3:useinteger; 4. 4:$result=2.4+2.4; 5. 5:print(“$resultn“); 6. 6: 7. 7:nointeg
5、er; 8. 8:$result=2.4+2.4; 9. 9:print(“$resultn“); 程序输出如下:$program44.8$如果 use 或 no 语句出现在语句块中,则只在该块的有效范围内起作用,如:1. useinteger; 2. $result1=2.4+2.4; 3. if($result1=4) 4. nointeger; 5. $result2=3.4+3.4; 6. 7. $result3=4.4+4.4; 结果输出如下:46.88这里,no 语句只在 if 语句中有效,出了 if 语句仍使用 integerPerl 模块,因此 4.4 在做加法前被转化成了 4。3、预定义 Perl 模块Perl5 提供了许多有用的预定义 Perl 模块,可以用 use 导入和 no 语句取消。下面是库中最有用的一些 Perl 模块:Perl 文档中有完整的预定义 Perl 模块列表。注:世界各地的 Perl5 用户写了许多有用的 Perl 模块,CPAN(ComprehensivePerlArchiveNetwork)的 Perl 文档有其完整的列表。