1. 程式人生 > >perl語言入門總結-第4章-子程序

perl語言入門總結-第4章-子程序

操作 code per erl 入門 $max imu 最好 sta

子程序定義和返回值

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章-子程序