標籤:arguments 最好 長度 else match 返回 總結 固定 state
子程式定義和傳回值
sub sum{ print "調用了子程式\n"; $a + $b; #後一行為傳回值}$a=1;$b=33;$s =∑ #34 調用子程式
子程式中的參數,參數固定(下面例子只能2參數),程式第一個參數為$_[0],第二個為$[1],依次類推
sub max { if($_[0] > $_[1] ){ $_[0]; }else{ $_[1]; }}$n = & max(10,15); #結果為15
子程式中私人變數
sub max { my($m,$n) = @_;}
限制參數長度
sub max{ if(@_ != 2){ print "waring! &max arguments not match" }}
變長參數列表
sub max { my($max_num) = shift @_; #數組中的第一個值 foreach (@_){ if($_ > $max_num){ $max_num = $_; } } $max_num;}$maximum = &max(1,6,10,5,60,9);print $maximum
關於my變數
my($num) = @_; #列表上下文my $num = @_; #標題上下文my(a,b) = @_;
最好使用 use strict;
use 5.012 #自動載入strict編譯指令
return操作符
如果像在子函數,foreach提前結束可使用return操作符。
省略&與號
一般情況可省略, 如果像定義了與內建函數同名,如chomp,則不能省略,調用必需為&chomp;
非標題傳回值
sub sum{ 1..10;}
持久性私人變數state , 如果在strict模式下,使用全域變數會報錯。
use strict;use feature qw(state); sub marine{ state $n = 0; $n += 1; print "$n\n";}&marine; #1&marine; #2&marine; #3
perl語言入門總結-第4章-子程式