2009-10-26 57 views
3

我仍然試圖弄糟Perl的OOP特性。如果我有一個子程序調用,我很困惑:這些常規的Perl子程序調用?

My::Package::sub_name($param1,$param2) 

這會得到作爲第一個參數發送的「My :: Package」嗎?我傾向於拒絕,但我不確定。

回答

8

你爲什麼不試試呢?

擾流板警報:

不,第一個參數將不是包名稱。

但是,當你這樣做:

My::Package->sub_name($param1, $param2) 

你會得到包/類名作爲第一個參數。

+0

我曾試過類似的東西,但我在考慮它是否是一般規則。 – Geo 2009-10-26 21:26:51

10

(正如Manni所說)將移位到@_(其中的調用者是一個祝福的對象或一個純粹的類名)。函數名稱中的::僅用於命名空間消歧,不會更改@_

發佈作爲一個答案按地理的建議,雖然我並不想成爲一個代表妓女:)

它在文檔中描述的更多:perldoc perlbootperldoc perltoot

+0

你值得代表:) – Geo 2009-10-26 21:44:20

+0

+1你是臥底嗎? – 2009-10-26 21:44:41

+0

嘿,我打了3K,我覺得像放慢了一下.. :) – Ether 2009-10-26 21:46:01