码迷,mamicode.com
首页 > 编程语言 > 详细

perl语言入门总结-第4章-子程序

时间:2018-06-14 23:57:35      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:arguments   最好   长度   else   match   返回   总结   固定   state   

 子程序定义和返回值

sub sum{
    print "调用了子程序\n";
    $a + $b; #后一行为返回值
}
$a=1;
$b=33;
$s =∑ #34 调用子程序

  子程序中的参数,参数固定(下面例子只能2参数),程序第一个参数为$_[0],第二个为$[1],依次类推

sub max {
    if($_[0] > $_[1] ){
        $_[0];
    }else{
        $_[1];
    }
}

$n = & max(10,15); #结果为15

子程序中私有变量

sub max {
    my($m,$n) = @_;
}

限制参数长度

sub max{
    if(@_ != 2){
        print "waring! &max arguments not match"
    }
}

变长参数列表

sub max {
    my($max_num) = shift @_; #数组中的第一个值
    foreach (@_){
        if($_ > $max_num){
            $max_num = $_;
        }
    }
    $max_num;
}

$maximum = &max(1,6,10,5,60,9);
print $maximum

关于my变量

my($num) = @_; #列表上下文
my $num = @_; #标题上下文
my(a,b) = @_;

最好使用 use strict;

use 5.012 #自动加载strict编译指令

 

return操作符

如果像在子函数,foreach提前结束可使用return操作符。

 

省略&与号

一般情况可省略, 如果像定义了与内置函数同名,如chomp,则不能省略,调用必需为&chomp;

 

非标题返回值

sub sum{
   1..10;
}

 

持久性私有变量state , 如果在strict模式下,使用全局变量会报错。

use strict;
use feature qw(state); 

sub marine{
    state $n = 0;
    $n += 1;
    print "$n\n";
}

&marine; #1
&marine; #2
&marine; #3

 

   

perl语言入门总结-第4章-子程序

标签:arguments   最好   长度   else   match   返回   总结   固定   state   

原文地址:https://www.cnblogs.com/qinzb/p/9185459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!