sub add_a_b{
$a+$b;
}
函数最后一条表达式为 $a+$b,故返回值为 $a+$b 的计算结果。以下是
调用情况:
$a = 5;
$b = 6;
$c = &add_a_b; # $c 的值为 11
$d = 5 * &add_a_b; # $d 的值为 5*11,即 55
还有一个问题是,在 Perl 程序中如何向
函数中传递参数呢?这是可以实现的,
调用函数时,可以将参数依次放在
函数名后面的 "()" 中,而在
函数体中,系统默认数组 @_ 中就按同样顺序存放着所有的参数。我们可以访问 @_ 变量,从而确定参数的个数及其数值。
仍以加法
函数为例:
sub add_a_b{
$_[0]+$_[1];
}
$c=&add_a_b(5,6); #$c的值为11
$d=5*&add_a_b(2,3); #d的值为5*5即25
更为奇特的是,这种方式可以实现变参数传递,即参数个数不确定的传递。C 语言也可以实现这种传递,如我们熟悉的 printf
函数,只是他们的实现机制不太一样,C 更深奥一些,此处就不多解释了。
sub add_all{
$sum=0; #将sum初始化
foreach $_(@_) { #遍历参数列表
$sum+=$_; #累加每个元素
}
$sum; #返回sum即总和的值
}
$a=&add_all(3,4,5); #$a的值为3+4+5即12
$d=2*&add_all(1,3,5); #d的值为2*15即30
4 常用系统调用
@H_
403_0@
下面将介绍一些 Perl 自身提供的一些标准系统
函数,这些
函数包括: print 、printf 、chop 、split 、keys 、values 、reverse 、sort 、length 、substr 、index 、push 、pop 、unshift 、shift 、join 、grep 、hex 、rand 、localtime 、die 、open 、close 、pack 、read 、exit。下面就来分别介绍他们。
@H_
403_0@
@H_
403_0@
指令:print
语法:print Filehandle LIST
说明:这个 Filehandle 可以看作在 I(INPUT)/O(OUTPUT) 之间的一个桥梁,可以利用 FILEHANDLE 来做出数据读入写出的动作。STDIN 是代表从哪里输入数据,例如从电脑的
键盘输入;STDOUT是代表从哪里
输出数据,例如从电脑的屏幕
输出;STDERR 是代表从哪里
输出错误的数据,例如从电脑的屏幕
输出。而在PERL语言中有三个标准FILEHANDLE:
1. STDIN(标准输入):是代表 STDIN 的 FILEHANDLE
2. STDOUT(标准
输出):是代表 STDOUT 的 FILEHANDLE
3. STDERR(标准
错误输出):是代表 STDERR 的 FILEHANDLE
如果要使用其他 FILEHANDLE 的时候,就要先用 OPEN 这个
函数来打开一个 FILEHANDLE,我们可以用 PRINT 这个
函数将 LIST 中的数据
输出给 FILEHANDLE。