声明方式
sub function{
$n += 1;
my $m = $n;
}
子程序里默认使用的是全局变量,也可以用my定义私有变量。
调用方式
&function(parameter1,parameter2);
function(parameter1,parameter2);省略&号
function parameter1,parameter2;省略()号
当子程序名与Perl内置函数重名时,必须带上&号调用,否则,Perl只会调用内置函数。
返回值
Larry觉得显式return过于麻烦,采用最后一次运算的结果作为返回值。因此一定要特别注意,确保最后执行的表达式是你要的返回值。返回值可以是标量,也可以是列表。
参数
Perl会自动将参数列表化名为特殊的数组变量@,第一个参数存在\$[0]中,以此类推,注意,这些变量与\$ 没有任何关系,跟Perl的一贯特性相同,\$fred[3]与 $fred毫无关系。如果在标量上下文中使用@,得到的是参数的个数。
子程序私有变量
借助词法变量(my)声明函数的私有变量。几乎所有的子程序都会以下面的程序代码作为开头。
sub max{
my ($m,$n) = @_;
if($m > $n){
$m;
}else{
$n;
}
}
sub max{
my $max_so_far = shift @_;
if($_ >$max_so_far){
$max_so_far = $_;
}
$max_so_far;
}
use strict关键字
强制使用一些严格的,良好的编程风格。 比如,Perl会坚持要求你声明所有新出现的变量,也就是加上my。总之使用use strict是一个好习惯。
return语句
立刻返回某个值,并终止程序。
持久性私有变量。
如果你希望变量的值在每次子程序调用之后保持当前的值,使用state关键字来声明它,而不是用my.
sub marine{
state $n = 0;
$n += 1;
}
Comments !