perl語言入門總結-第4章-子程序
阿新 • • 發佈:2018-06-15
操作 code per erl 入門 $max imu 最好 sta
子程序定義和返回值
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章-子程序