在perl中可以自己建立子程式(subroutine):
關鍵字sub,子程式名以及用花括號封閉起來的**塊。
sub marine
子程式名與標量的命名空間是不同的兩個部分。
子程式的返回值:最後一次運算的表示式即是預設的返回值。也可以用return來顯式的返回,這樣之後的語句不會執行。
在標量上下文返回的會是標量,在列表上下文返回的也是列表。
子程式中的引數:子程式內部可以使用@_,$_[0],$_[1],$_[2],,,這樣的變數來表示。@_變數是子程式私有變數,遞迴呼叫時,不會出錯。
在子程式呼叫時,在子程式名後用括號括住的列表表示式。
$n = &max(10,15); #10後被送到$_[0],15被送到$_[1],@_=(10,15),在標量上下文值為2;
子程式私有變數定義: my關鍵字來宣告詞法變數(lexical variable)。 my($m,$n) = @_; #建立私有變數並賦值。
不僅可以定義在子程式中,還可以定義在if, while, foreach中。
只能用來宣告單個標量/變數,列表/陣列。 my $fred, $barney; #錯誤,第二個變數無法宣告。
永續性私有變數: 用關鍵字state來宣告,在子程式的多次呼叫中保留變數之前的值。作用域仍然是只存在於子程式內部。
sub marine
也可以用來宣告陣列和雜湊型別。 state @number。
子程式的呼叫:子程式可以通過 (&+子程式名)的方式來呼叫。
如果編譯器之前看到過子程式的定義,那麼可以不加&,而直接呼叫子程式。
如果perl可以通過語法規則直接判斷它只能是子程式呼叫,那麼也可以省略 &。
也就是說只要你將引數列表放進括號內,就一定是子程式呼叫。
perl子程式學習筆記
一.定義 子程式即執行乙個特殊任務的一段分離的 它可以使減少重複 且使程式易讀.perl中,子程式可以出現在程式的任何地方.定義方法為 sub subroutine 二.呼叫 呼叫方法如下 1.用 呼叫 subname sub subname 2.先定義後呼叫,可以省略 符號 sub subname...
Perl 教學 子程式
一 定義 子程式即執行乙個特殊任務的一段分離的 它可以使減少重複 且使程式易讀。perl中,子程式可以出現在程式的任何地方。定義方法為 sub subroutine 二 呼叫 呼叫方法如下 1 用 呼叫 subname sub subname 2 先定義後呼叫 可以省略 符號 sub subname...
perl學習 4 子程式
子程式,模擬c語言中的函式,在形式上個人認為最大的區別 沒有形參 usr bin perl sub marine marine marine 所有的perl 子程式都會返回值,在perl 中返回值和不返回值是沒有區別的。當然,不是所有perl子程式返回的值都是有用的。由於所有的被呼叫的子程式都要返回...