2008-09-19 104 views
5

我試圖瞭解別人的Perl代碼,而不知道自己多麼Perl。我很感謝你的幫助。什麼是Perl中的雙下劃線?

我遇到一個Perl函數沿着這些線路:

MyFunction($arg1,$arg2__size,$arg3) 

有沒有意義的雙下劃線語法$arg2,還是僅僅是第二個參數的名稱的一部分?

回答

11

在perl變量名中使用__沒有特定的含義。這可能是程序員的偏好,特別是在你引用你的問題的情況下。您可以看到更多關於perl變量命名爲here的信息。

1

我相當確定arg2__size只是一個變量的名稱。

11

在大多數語言中,下劃線只是標識符的一部分;沒有特別的意義。

但你確定它是Perl嗎?變量上沒有任何標識。你能發佈更多的上下文嗎?

+0

哎呀,他們讓任何人在這裏;) – Ovid 2008-09-19 15:36:24

+0

啊 - 什麼是網站來。認真。 – 2008-09-19 17:04:36

2

就解釋器而言,下劃線只是標識符中允許的另一個字符。它可以用作拼接或駱駝案例的替代形式來形成多字標識符。

前導下劃線通常用於表示標識符僅用於本地使用,例如用於模塊的非導出部分。這只是一個慣例;口譯員不在乎。

2

在您的問題的上下文中,雙下劃線沒有任何編程意義。雙下劃線對於Perl中有限數量的值意味着一些特殊的值,特別是__FILE__ & __LINE__。這些是不帶前綴的特殊文字($,%@),並且僅在引號之外插入。它們包含當前正在執行的文件的名稱和正在執行的行的完整路徑&。請參閱perldatathis post on Perl Monks

1

中的'特殊字母'一節。

但我想指出,你的例子看起來不像Perl。 Perl變量不是裸語。他們有印記,你會從上面的鏈接看到。 Perl沒有「功能」,它有子程序。

因此,我們所討論的語言可能存在一些混淆。

-1

您需要告訴解釋器「$ arg2」是變量的名稱。而不是「$ arg2__size」。爲此,您需要使用括號。 (這個用法與shell中的用法類似)。

這應該工作 MyFunction的($ ARG1 $ {ARG2} __大小,$ ARG3)

--Binu

相關問題