Perl函數(子程式)學習筆記_perl

來源:互聯網
上載者:User

一、函數定義

子程式即一段分離的代碼,它可以使減少重複代碼且程式易讀.perl中,子程式可以出現在程式的任何地方.但一般放在程式的開始或結尾.

複製代碼 代碼如下:

sub subroutine{
    statements;
}

sub開始,子程式名同變數的命名規則,可與變數同名,最好不要與內建函式同名,如果與內建函式同名則用$subroutine區分,不用&是內建函式,用&是定義函數,但省略&時混淆.

帶有原型說明的子程式定義:

複製代碼 代碼如下:

sub subroutine($$){   #需要兩個簡單變數的參數
    statements;
}

說明:

1.()中的符號表示參數的類型,以一個字元表示一個參數.
2.$ 簡單變數   @ 列表  % 散列  & 匿名子程式   * 引用
3.前加\為強制類型一致,;分隔必須的參數和選擇性參數.
4.\@$;$表示第一個參數為列表,第二個參數為簡單變數,第三個參數簡單變數可選.

二、函數傳回值

1.預設子程式中最後執行的一個語句的值將用作傳回值,如果在if塊中為最後執行的語句,雖然不是子程式的最後一句,也是傳回值.

複製代碼 代碼如下:

$a=1;

不用等於,直接$retval;

複製代碼 代碼如下:

split(/:/,@a) 返回數組.

2.語句return(retval) 退出子程式並傳回值retval,retval可以為列表.

3.返回錯誤

return 返回錯誤undef

用eval(‘subroutine') 函數,錯誤由$@變數中取得.

三、函數參數傳遞

形式:

複製代碼 代碼如下:

$sub1($num1,$unm2,$num3);     調用
sub sub1{
my($num1,$unm2,$num3)=@_;
}
my $num1=shift;
my $num2=shift;
my $num3=pop;

說明:

1.所有參數在數組@_中,每個元素為$_[0],$_[1]
2.@_,$_[]為局部變數,當子程式內再調用子程式時,@_不改變,會新產生另一份@_.
3.改變@_內元素的值如$_[0]會改變主程式的參數值.
4.shift pop 一次取一個參數.對@_操作,shift取第一個參數,然後刪除,pop取最後一個參數再刪除.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.