一、函式定義
子程式即一段分離的**,它可以使減少重複**且程式易讀.perl中,子程式可以出現在程式的任何地方.但一般放在程式的開始或結尾.
複製** **如下:
sub subroutine
sub開始,子程式名同變數的命名規則,可與變數同名,最好不要與內部函式同名,如果與內部函式同名則用$subroutine區分,不用&是內部函式,用&是定義函式,但省略&時混淆.
帶有原型說明的子程式定義:
複製** **如下:
sub subroutine($$)
說明:1.()中的符號表示引數的型別,以乙個字元表示乙個引數.
2.$ 簡單變數 @ 列表 % 雜湊 & 匿名子程gyljni序 * 引用
3.前加\為強制型別一致,;分隔必須的引數和可選引數.
4.\@$;$表示gyljni第乙個引數為列表,第二個引數為簡單變程式設計客棧量,第三個引數簡單變數可選.
二、函式返回值
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=shift;
my $num2=shift;
my $num3=pop;
說明:1.所有引數在陣列@_中,每個元素為$_[0],$_[1]
2.@_,$_為區域性變數,當子程式內再呼叫子程式時,@_不改變,會新生成另乙份@_.
3.改變@_內元素的值如$_[gyljni0]會改變主程式的引數值.
4.shift pop 一次取乙個引數.對@_操作,shift取第乙個引數,然後刪除,pop取最後乙個引數再刪除.
本文標題: perl函式(子程式)學習筆記
本文位址: /jiaoben/perl/116572.html
perl子程式學習筆記
一.定義 子程式即執行乙個特殊任務的一段分離的 它可以使減少重複 且使程式易讀.perl中,子程式可以出現在程式的任何地方.定義方法為 sub subroutine 二.呼叫 呼叫方法如下 1.用 呼叫 subname sub subname 2.先定義後呼叫,可以省略 符號 sub subname...
perl學習 4 子程式
子程式,模擬c語言中的函式,在形式上個人認為最大的區別 沒有形參 usr bin perl sub marine marine marine 所有的perl 子程式都會返回值,在perl 中返回值和不返回值是沒有區別的。當然,不是所有perl子程式返回的值都是有用的。由於所有的被呼叫的子程式都要返回...
perl學習之子程式
一 定義 子程式即執行乙個特殊任務的一段分離的 它可以使減少重複 且使程式易讀。perl中,子程式可以出現在程式的任何地方。定義方法為 sub subroutine 二 呼叫 呼叫方法如下 1 用 呼叫 subname sub subname 2 先定義後呼叫 可以省略 符號 sub subname...