文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 国产软件 | 国外软件 | 汉化补丁 | 设为首页 | 加入收藏
业界资讯 | 图形图像 | 操作系统 | 网络冲浪 | 工具软件 | 办公软件 | 媒体动画 | 精文荟萃 | 认证考试 | 网站建设 | 技术开发 | 专栏
当前位置:abcdown网络学院网络编程CGI/PerlPerl教学 第八篇 子程序
精品广告
推荐TOP10
·在CGI中如何使用cookie的方法
·CGI脚本在WIN2000、WINNT下安装
阅读TOP10
·Linux系统环境下的Socket编程详细解析
·CGI 安全问题
·用机器生成的音乐监控Linux 计算机
·Perl教学 目录
·Perl教学 第一篇 概述
·Perl教学 第二篇 简单变量
·Perl教学 第三篇 操作符
·Perl教学 第四篇 列表和数组变量
·Perl教学 第五篇 文件读写
·Perl教学 第六篇 模式匹配

Perl教学 第八篇 子程序

日期:2007年5月10日 作者: 查看:[大字体 中字体 小字体]


一、定义
子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。PERL中,子程序可以出现在程序的任何地方。定义方法为:
sub subroutine{
statements;
}
二、调用
调用方法如下:
1、用&调用
&subname;
...
sub subname{
...
}
2、先定义后调用 ,可以省略&符号
sub subname{
...
}
...
subname;
3、前向引用 ,先定义子程序名,后面再定义子程序体
sub subname;
...
subname;
...
sub subname{
...
}
4、用do调用
do my_sub(1, 2, 3);等价于&my_sub(1, 2, 3);
三、返回值
缺省的,子程序中最后一个语句的值将用作返回值。语句return (retval);也可以推出子程序并返回值retval,retval可以为列表。
四、局部变量
子程序中局部变量的定义有两种方法:my和local。其区别是:my定义的变量只在该子程序中存在;而local定义的变量不存在于主程序中,但存在于该子程序和该子程序调用的子程序中(在PERL4中没有my)。定义时可以给其赋值,如:
my($scalar) = 43;
local(@array) = (1, 2, 3);
五、子程序参数传递
1、形式
&sub1(&number1, $number2, $nubmer3);
...
sub sub1{
my($number1, $number2, $number3) = @_;
...
}
2、传送数组
&addlist (@mylist);
&addlist ("14", "6", "11");
&addlist ($value1, @sublist, $value2);
...
sub addlist {
my (@list) = @_;
...
}
参数为数组时,子程序只将它赋给一个数组变量。如
sub twolists {
my (@list1, @list2) = @_;
}
中@list2必然为空。但简单变量和数组变量可以同时传递:
&twoargs(47, @mylist); # 47赋给$scalar,@mylist赋给@list
&twoargs(@mylist); # @mylist的第一个元素赋给$scalar,其余的元素赋给@list
...
sub twoargs {
my ($scalar, @list) = @_;
...
}
六、递归子程序
PERL中,子程序可以互相调用,其调用方法与上述相同,当调用该子程序本身时,即成了递归子程序。递归子程序有两个条件:1、除了不被子程序改变的变量外,所有的变量必须的局部的;2、该子程序要含有停止调用本身的代码。
七、用别名传递数组参数
1、用前面讲到的调用方法&my_sub(@array)将把数组@array的数据拷贝到子程序中的变量@_中,当数组很大时,将会花费较多的资源和时间,而用别名传递将不做这些工作,而对该数组直接操作。形式如:
@myarray = (1, 2, 3, 4, 5);
&my_sub(*myarray);
sub my_sub {
my (*subarray) = @_;
}
2、此方法类似于C语言中的传递数组的起始地址指针,但并不一样,在定义数组的别名之后,如果有同名的简单变量,则对该变量也是起作用的。如:
$foo = 26;
@foo = ("here's", "a", "list");
&testsub (*foo);
...
sub testsub {

[1] [2] 下一页 

上一篇:Perl教学 第九篇 关联数组(哈希表)

下一篇:Perl教学 第七篇 控制结构


相关软件: 相关文章:
·Perl教学 第八篇 子程序

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.abcdown.net
首页 | 本站声明 | 下载帮助 | 发布软件 |
中文版权所有:ABC学院 浙ICP备05000717号