服务器技术之Perl语言的库
Perl支持对源代码的共享,通用于程序司以存放在文件中,并在程序中进行调用,这操作要通过require语句来实现,其格式如下:
require”cgi-lib.pl”:
它类似丁C语击中的#include预处理。Perl在查找源文件时,首先搜索缺省的库日录,然后搜索当前目录,也可以采用路径指定文件名中的路径信息。
通过require函数的机制,可以把程序分割成多个文件并分别编写,以创建函数库。例如,在filel.pl中自定义好的Perl函数,现需要在file2.pl中使用该函数,可以用语句require(”filel.pl“)将它包含进来。当Perl中解释器执行到这一语句时,在指定的目录中寻找文件filel.pl, 如果找到则执行文件中的语句,否则程序终止并输出错误信息。
Perl中还支持包的概念。在Perl中,程序把变量和子程序的名称存储到符号表中,这个符号表中的变量和子程序的集合称为包(package)。在一个程序中可以定义多个包,每个包有一个单独的符号表,它定义的格式为:
package packname;
此语句定义个名为packname的包。在程序中,这个包定义语句以后的所有定义的变量和子程序名字,它们都存储在与该包关联的符号表中,直到遇到下一个package 语句为止。这样定义的好处是,与每个包相关的符号表有其自己的变量、子程序名空间,各个包中的变量是不相关的,因此可以在不同的包中使用相同的变量,而不会发生冲突。
在一个包中可以引用其它包中定义的变量或子程序,办法是在变量名前而加上包名和一个单引号。如:
$packname'var;
在Perl中还支持模块,模块是包含了变量和子程序的程序集合。使用use语句可以将已经存在的模块导入程序中,其格式如下:
use module:
它导入了module模块,这样在模块module中定义的子程序和变量可以使用了。取消导入的模块使用no语句,其格式为:
no mnodule;
它将取消module模块的导入。
Perl 5提供了些预定义模块,叫以用use导入并使用,下面是库中常用的一些模块:
Integer 整数运算模块
Diagnostics 诊断信息模块
Env 环境变量模块
POSIX POSIX标准接口模块
Socket 网络套接字处理模块