我試圖瞭解別人的Perl代碼,而不知道自己多麼Perl。我很感謝你的幫助。什麼是Perl中的雙下劃線?
我遇到一個Perl函數沿着這些線路:
MyFunction($arg1,$arg2__size,$arg3)
有沒有意義的雙下劃線語法$arg2
,還是僅僅是第二個參數的名稱的一部分?
我試圖瞭解別人的Perl代碼,而不知道自己多麼Perl。我很感謝你的幫助。什麼是Perl中的雙下劃線?
我遇到一個Perl函數沿着這些線路:
MyFunction($arg1,$arg2__size,$arg3)
有沒有意義的雙下劃線語法$arg2
,還是僅僅是第二個參數的名稱的一部分?
在perl變量名中使用__沒有特定的含義。這可能是程序員的偏好,特別是在你引用你的問題的情況下。您可以看到更多關於perl變量命名爲here的信息。
我相當確定arg2__size只是一個變量的名稱。
在大多數語言中,下劃線只是標識符的一部分;沒有特別的意義。
但你確定它是Perl嗎?變量上沒有任何標識。你能發佈更多的上下文嗎?
就解釋器而言,下劃線只是標識符中允許的另一個字符。它可以用作拼接或駱駝案例的替代形式來形成多字標識符。
前導下劃線通常用於表示標識符僅用於本地使用,例如。用於模塊的非導出部分。這只是一個慣例;口譯員不在乎。
在您的問題的上下文中,雙下劃線沒有任何編程意義。雙下劃線對於Perl中有限數量的值意味着一些特殊的值,特別是__FILE__
& __LINE__
。這些是不帶前綴的特殊文字($
,%
或@
),並且僅在引號之外插入。它們包含當前正在執行的文件的名稱和正在執行的行的完整路徑&。請參閱perldata或this post on Perl Monks
中的'特殊字母'一節。
但我想指出,你的例子看起來不像Perl。 Perl變量不是裸語。他們有印記,你會從上面的鏈接看到。 Perl沒有「功能」,它有子程序。
因此,我們所討論的語言可能存在一些混淆。
您需要告訴解釋器「$ arg2」是變量的名稱。而不是「$ arg2__size」。爲此,您需要使用括號。 (這個用法與shell中的用法類似)。
這應該工作 MyFunction的($ ARG1 $ {ARG2} __大小,$ ARG3)
--Binu
哎呀,他們讓任何人在這裏;) – Ovid 2008-09-19 15:36:24
啊 - 什麼是網站來。認真。 – 2008-09-19 17:04:36