2008-09-19 107 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

相关问题