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

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

MyFunction($arg1,$arg2__size,$arg3)

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

有帮助吗?

解决方案

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

其他提示

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

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

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

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

在您的问题的上下文中,双下划线没有任何程序意义。对于Perl中有限数量的值,双下划线确实意味着特别的东西,最明显的是 __ FILE __ &amp; <代码> __ LINE __ 。这些是特殊文字,不带有sigil前缀( $ @ ),并且仅在引号之外插入。它们包含完整的路径&amp;当前正在执行的文件的名称和正在执行的行。请参阅 perldata 中的“特殊文字”部分或关于Perl Monks的这篇文章

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

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

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

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

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

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

- BINU

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top