一、函數(shù)定義
子程序即一段分離的代碼,它可以使減少重復(fù)代碼且程序易讀.perl中,子程序可以出現(xiàn)在程序的任何地方.但一般放在程序的開始或結(jié)尾.
sub開始,子程序名同變量的命名規(guī)則,可與變量同名,最好不要與內(nèi)部函數(shù)同名,如果與內(nèi)部函數(shù)同名則用$subroutine區(qū)分,不用&是內(nèi)部函數(shù),用&是定義函數(shù),但省略&時混淆.
帶有原型說明的子程序定義:
說明:
1.()中的符號表示參數(shù)的類型,以一個字符表示一個參數(shù).
2.$ 簡單變量 @ 列表 % 散列 & 匿名子程序 * 引用
3.前加/為強(qiáng)制類型一致,;分隔必須的參數(shù)和可選參數(shù).
4./@$;$表示第一個參數(shù)為列表,第二個參數(shù)為簡單變量,第三個參數(shù)簡單變量可選.
二、函數(shù)返回值
1.缺省子程序中最后執(zhí)行的一個語句的值將用作返回值,如果在if塊中為最后執(zhí)行的語句,雖然不是子程序的最后一句,也是返回值.
不用等于,直接$retval;
2.語句return(retval) 退出子程序并返回值retval,retval可以為列表.
3.返回錯誤
return 返回錯誤undef
用eval(‘subroutine') 函數(shù),錯誤由$@變量中取得.
三、函數(shù)參數(shù)傳遞
形式:
說明:
1.所有參數(shù)在數(shù)組@_中,每個元素為$_[0],$_[1]
2.@_,$_[]為局部變量,當(dāng)子程序內(nèi)再調(diào)用子程序時,@_不改變,會新生成另一份@_.
3.改變@_內(nèi)元素的值如$_[0]會改變主程序的參數(shù)值.
4.shift pop 一次取一個參數(shù).對@_操作,shift取第一個參數(shù),然后刪除,pop取最后一個參數(shù)再刪除.
新聞熱點(diǎn)
疑難解答