#第一種情況,傳匿名子例程引用
my $rs=\&greet;
#$rs=\&greet();#wrong
#$rs->('joan','kim');#當呼叫的已經是匿名子例程引用的時候。這行放在這裡報錯
my $hidrs=sub;#here is only 1 line not 4 lines
#&$hidrs('tim');
#my $hidrs這塊不能放在sub greet塊的後面,不然會報錯。
$rs->('joan','kim');#當呼叫的已經是匿名子例程引用的時候。這行放在這裡工作正常
sub greet#here is 5 lines
$rs->('joan','kim');#當呼叫的已經是匿名子例程引用的時候。這行放在這裡工作正常
#另一種情況,傳有名子例程引用
my $rs1 = \&test1;
$rs1 -> ("batman") -> ("robin");#當呼叫的是有名子例程引用的時候。這行放在這裡工作正常
#sub test1()#work
subtest1
my $arg = shift;
print $arg;
return \&test2;#當呼叫的是有名子例程引用的時候
$rs1 -> ("batman") -> ("robin");#當呼叫的是有名子例程引用的時候。這行放在這裡工作正常
#sub test2()#work
sub test2
{my $arg = shift;
print " and $arg say \"hello world\" too.\n";
$rs1 -> ("batman") -> ("robin");#當呼叫的是有名子例程引用的時候。這行放在這裡工作正常
perl子例程引數傳遞方式初探
perl裡,子例程採用可變長引數列表,因此引數的個數不再限制,體現出動態語言的優點。由於傳遞的是引用,所以可以在sub裡改變它的值。samle01.pl usr bin perl sub sub routine my par1 abcde my par2 2 print main par1 par1...
perl陣列硬引用 perl中的引用
為什麼使用引用?在perl4中,hash表中的value欄位只能是scalar,而不能是list,這對於有些情況是很不方便的,比如有下面的資料 chicago,usa frankfurt,germany berlin,germany washington,usa helsinki,finland n...
Perl 函式引用
函式的引用 ref func func的定義在其他位置 不要 當 func 時為執行函式,返回值再引用。當 func 時為執行函式,返回值再引用。oracle jhoa 3 cat 3.pl sub generate greeting 引用 rs generate greeting print rs...