一个子例程就是一段执行特殊任务的代码片段。子例程的识别标志是它含有的参数的描述和产生的返回值,可以被重复调用。
1、子例程的定义
1.1 定义
[our/my] sub 子函数名[(参数1,参数2)] {
函数体;
}
或
[our/my] sub 子函数名 {
函数体;
}
或
module 模块名{
our sub 子函数名1[(参数1,参数2)] {
函数体;
}
our sub 子函数名2 {
函数体;
}
}
1.2 调用方法
方法一:
my $x = 1;
my $y = 2;
my $c = 函数名(参数1,参数2);
方法二:
my $c = 函数名();
方法三:
my $c = 模块名::函数名();
1.3 例子
use v6;
my $x = 1;
my $y = 5;
my $sm = sum($x,$y);
say "$x + $y = $sm\n";
my $sub= Substract($x,$y);
say "$x - $y = $sub\n";
my $mult=MultAndDiv::Multiplication($x,$y);
say "$x * $y = $mult\n";
my $div =MultAndDiv::Division($x,$y);
say "$x / $y = $div\n";
sub sum($x,$y){
my $sm = $x + $y;
return $sm;
}
sub Substract{
my ($x,$y) = @_;
my $sub = $x - $y;
return $sub;
}
module MultAndDiv{
our sub Multiplication($x,$y) {
my $mult = $x * $y;
return $mult;
}
our sub Division{
my ($x,$y) = @_;
my $div = $x/$y;
return $div;
}
}
Output:
1 + 5 = 6
1 - 5 = -4
1 * 5 = 5
1 / 5 = 0.2
在上面简单例程中,我们所传递的参数为标量,此外,还可以传递数组,函数等。