Per學習筆記
1.子程式
(1)子程式的定義可以在程式的任意位置,且不需要在定義之前有任何聲明。
(2)子程式的定義是全局的,可以在子程式中使用全局變量。
(3)所有的Perl 子程式都會傳回值,在Perl 中傳回值和不傳回值是沒有差別的。當Perl周遊此子程式時,将會計算每一步的值,此子程式中最後計算的值将被傳回。注意:不是程式的最後一行。
(4)Perl的子程式如果帶有參數,會自動将此子程式的參數存到預設數組@_中,第一個參數值為$_[0],其他依次為$_[1]...
調用Perl帶有參數的子程式時,如果傳入的參數過多,那麼多餘的參數會被忽略掉;如果傳入的參數過少,額外的會用undef補上。
(5)@_是perl子程式的一個私有變量。
my關鍵字在子程式内部建立私有變量,私有變量僅對該子程式起作用。
定義私有變量:
my $fred,$betty; --沒有定義$betty變量
my ($fred,$betty);--兩個變量均定義了
如果新的變量沒被指派的話:标量變量會自動賦與undef,而數組變量會賦與空清單。
(5)告訴Perl 進行更嚴格的文法檢測: use strict;
(6)立刻從perl的子程式中退出,而不再執行其餘的代碼:return;
(7)在調用子程式時可以省略符号&,但是前提是子程式的定義必須在調用之前。
如果子程式和Perl的一個内嵌程式同名,則必須使用&來調用它。編譯器将在調用之前檢查其定義,而非直接将它當作内嵌的函數來處理。加上&,可以確定你調用了此子程式;不加,則僅當沒有同名的内嵌函數時才能調用到它:
本文轉自 yubowei 51CTO部落格,原文連結:http://blog.51cto.com/samyubw/223766