在Perl中用户可以定义子程序,并在程呼中调用。通过将特殊功能的代码定义为子程序,可以减少代码重复并且使程序易于维护。在Perl中子程序可以出现在程序的任何地方,其定义方法为:
sub subname
{
statements;
}
其中,Sub声明为子程序定义,subname是子程序的名称,在“()”中间的是子程序体.对于子程序的调用,可以使用以下几种方法:
(1)可以使用符号“&”加子桂序名称调用,如:
&subname:
(2)如果子程序是先定义而后才‘调用的话,则符号“&”可以省略。
(3)可以使用“do”加子程序名的方式,如:
do subname
下面,我们给出个简单的子程序名的例子。
$a = 999 ;
$h= 888 ;
print “Before the call of sub, a is $a, b is $b
”;
suh Sum
{
$SUJn = $a + $h
retum ($sum) :
print "The firit call : $i
$i = sum ( 10 , 20 ) ;
print '7he sccond call : $11n "
$i=&sum ( 10 , 20 ) ;
print ”the third call : $i
“
pnnt”After the call of sub,a is $a.b is$b\n”,
它运行的结束为:
Before the call of suh, a is 999, b is 888
The first call 7
The second call:30
The third call 300
Arter the call of sub, a is 999, biS 88S
这里定义了一个简中的求两个数和的子程序,然后用三种方法传入不同的参数进行调用,可以看出.上面三种调用方法都可以完成相同的结果需要注意的是:(1)在子程序sum中用my定义了局部变量$a和$b,它们用来接收调州参数,但与子程序外面的同名变量$a和$b是没有任何关系的,从程序的运行结果中可以看到这一点:(2)调用参数的传递采用了内部变量“$_”,这里采用的是值传递。