我想弄清楚如何使一個Perl模塊的函數參考工作。我知道如何在模塊之外做到這一點,但是在一個模塊之內?考慮這樣的代碼:如何在Perl模塊中編寫函數引用?
==mymodule.pm==
1 sub foo { my $self = shift; ... }
2 sub bar { my $self = shift; ... }
3 sub zip {
4 my $self = shift;
5 my $ref = \&foo;
6 $self->&$foo(); # what syntax is appropriate?
7 }
==eof===
請看上面的第5-6行。 (1)首先定義函數引用,以及(2)解引用它的正確語法是什麼?
在這個呼叫風格需要注意的重要一點是,'$ self'是不用於確定調用哪種方法(通常情況下調用OO風格的方法時) - 該方法完全由'$ ref'確定,'$ self'僅作爲$ ref的第一個參數傳遞。如果'$ ref'只是方法的名稱,在這種情況下,我們將開始在'$ self'上查找該方法,然後繼承樹。 – Ether 2010-02-04 17:58:07
Upvoted成爲Randal「one-L」Schwartz!好極了! – 2010-02-04 18:14:17
@Jonathan:讓我們不要把SO [perl]變成一羣流涎的團體.. Jon Skeet球迷已經夠糟糕了。 :/ – Ether 2010-02-04 18:17:29