一、require函数
用require函数可以把程序分割成多个文件并创建函数库。例如,在myfile.pl中有定义好的perl函数,可用语句require ("myfile.pl"); 在程序中包含进来。当perl解释器看到这一语句,就在内置数组变量@inc指定的目录中寻找文件myfile.pl。 如果找到了,该文件中的语句就被执行,否则程序终止并输出错误信息:
can't find myfile.pl in @inc
作为子程序调用参数,文件中最后一个表达式的值成为返回值,require函数查看其是否为零,若为零则终止。例如myfile.pl最后的语句是:
print ("hello, world!\n");
$var = 0;
因为最后的语句值为零,perl解释器输出下列错误信息并推出:
myfile.pl did not reture true value
可以用简单变量或数组元素等向require传递参数,如:
@reqlist = ("file1.pl", "file2.pl", "file3.pl");
require ($reqlist[$0]);
require ($reqlist[$1]);
require ($reqlist[$2]);
还可以不指定文件名,即:
require;
这时,变量$_的值即作为文件名传递给require。
注:如果@inc中有多个目录中含有同一个文件,则只有第一个被包含。
1、require函数和子程序库
用require函数可以创建可用于所有perl程序的子程序库,步骤如下:
a、确定存贮子程序库的目录
b、将子程序抽取放到单独的文件中,将文件放到子程序库目录
c、每个文件末尾加一句非零值的语句,最简单的办法是语句 1;
d、在主程序中用require包含一个或多个所需的文件。
e、运行主程序时,用 -i 选项指定子程序库目录,或者在调用require前将该目录添加到@inc数组中。
例如:假设目录/u/perldir中存有你的perl子程序库,子程序mysub存贮在文件mysub.pl中。现在来包含上该文件:
unshift (@inc, "/u/perldir");
require ("mysub.pl");
对unshift的调用把目录/u/perldir添加到@inc数组,对require的调用将mysub.pl文件的内容包含进来作为程序的一部分。
注意:
1、应该使用unshift来向@inc中添加目录,而不是push。因为push增加到@inc的末尾,则该目录将被最后搜寻。
2、如果你的库文件名与/usr/local/lib/perl中的某文件同名,则不会被包含进来,因为require只包含同名文件中的第一个。
2、用require指定perl版本
perl 5中,可以用require语句来指定程序运行所需的perl版本。当perl解释器看到require后跟着数字时,则只有其版本高于或等于该数字时才运行该程序。例如,下面语句表明只有perl解释器为5.001版或更高时才运行该程序:
require 5.001;
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器