Perl-7子程序-1

学习内容 

  • 定义子程序
  • 调用子程序
  • 返回值
  • 参数
  • 子程序中的私有变量
  • 长度可变的参数列表

 定义子程序

 在perl语言,可以把子程序等同于函数,函数全部都有返回值。

#定义一个子程序/函数
sub marin{
$n +=1;
#这个$n是全局变量
#若是私有变量格式为:my $n +=1;
print "hello everyone $n\n";

}

调用子程序

&marin;

#连续调用多次
&marin;
&marin;

 返回值

sub calc {
$a = $fred +$bar;
$b = $fred -$bar;
$c = $fred *$bar;
$d = $fred +$bar;
}

$fred = 30;
$bar = 3;
$result = &calc;
#函数计算结束,把返回值赋值给result,返回值是最后一个计算结果
print $result . "\n";


sub larger {
 if($fred > $bar){
$fred;}
else{
$bar;}
}
$result = &larger;
print $result . "\n";
#这个返回值取决于if语句

 参数

sub max{
#参数在数组里:@_,数组里的每一个参数,$_[0],$_[1]
if($_[0]  > $_[1]){
    $_[0]
}
else{
    $_[1]
}

}

$result = &max(10,15);
print $result . "\n";

#假如给了三个参数。也没有关系,自动把第三个参数忽略
$result = &max(10,15,27);
print $result . "\n";

 子程序中的私有变量

#用私有变量写这个函数
sub max{
my($m,$n);
#私有变量作用范围,只在这个max函数里面
($m,$n) = @_;

if($m > $n){ $m; } else{ $n;}
#到这是最后一行的 $m;和$n; 的分号可以不写
#if($m > $n){ $m } else{ $n} 这样更简洁
}

#perl语言允许定义一个函数,再定义一个同名函数。第二个函数会把第一个函数覆盖

 长度可变的参数列表

#可以输入很多参数
sub max{
    my($max_so_far) = shift @_;
    #用私有局部变量得到列表里第一个参数
    foreach(@_){
    if($_ > $max_so_far){$max_so_far = $_;}
    }
    $max_so_far;
#如果不加这个,返回的是foreach的返回值
}

$maximum = &max(3,5,10,4,6);
print $maximum . "\n";

$result =&max();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值