Perl中的双下划线是什么?

时间:2008-09-19 15:02:29

标签: perl syntax double-underscore

我试图在不了解Perl的情况下了解其他人的Perl代码。我很感激你的帮助。

我在这些方面遇到过Perl函数:

MyFunction($arg1,$arg2__size,$arg3)

$arg2中的双下划线语法是否有意义,或者它只是第二个参数名称的一部分?

7 个答案:

答案 0 :(得分:11)

在perl变量名中使用__没有特定含义。这可能是程序员的偏好,尤其是在你的问题中引用的情况。您可以查看有关perl变量命名here的更多信息。

答案 1 :(得分:11)

与大多数语言一样,下划线只是标识符的一部分;没有特别的意义。

但你确定它是Perl吗?变量上没有任何符号。你能发布更多背景吗?

答案 2 :(得分:2)

就解释器而言,下划线只是标识符中允许的另一个字符。它可以用作串联或驼峰大小写的替代形式,以形成多字标识符。

前导下划线通常用于表示标识符仅供本地使用,例如表示模块的非导出部分。这只是一个惯例;口译员不关心。

答案 3 :(得分:2)

在您的问题的上下文中,双下划线没有任何程序意义。对于Perl中有限数量的值,双下划线确实意味着特别的东西,最值得注意的是__FILE__& __LINE__。这些是特殊的文字,不带有印记($%@),并且仅在引号之外插入。它们包含完整的路径&当前正在执行的文件的名称和正在执行的行。请参阅perldatathis post on Perl Monks

中的“特殊文字”部分

答案 4 :(得分:1)

我很确定arg2__size只是一个变量的名称。

答案 5 :(得分:1)

马克的答案当然是正确的,没有特别的意义。

但是我想要注意你的例子看起来根本不像Perl。 Perl变量不是裸字。正如您将从上面的链接中看到的那样,他们有了印记。 Perl没有“函数”,它有子程序。

因此,我们谈论的语言可能存在一些混淆。

答案 6 :(得分:-1)

您需要告诉解释器“$ arg2”是变量的名称。而不是“$ arg2__size”。为此,您需要使用括号。 (这种用法类似于shell中的用法)。

这应该有效 MyFunction的($ ARG1,$ {ARG2} __大小,$ ARG3)

- BINU