Perl中的双下划线是什么?
-
01-07-2019 - |
题
我试图在不了解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