我试图在不了解Perl的情况下了解其他人的Perl代码。我很感激你的帮助。
我在这些方面遇到过Perl函数:
MyFunction($arg1,$arg2__size,$arg3)
$arg2
中的双下划线语法是否有意义,或者它只是第二个参数名称的一部分?
答案 0 :(得分:11)
在perl变量名中使用__没有特定含义。这可能是程序员的偏好,尤其是在你的问题中引用的情况。您可以查看有关perl变量命名here的更多信息。
答案 1 :(得分:11)
与大多数语言一样,下划线只是标识符的一部分;没有特别的意义。
但你确定它是Perl吗?变量上没有任何符号。你能发布更多背景吗?
答案 2 :(得分:2)
就解释器而言,下划线只是标识符中允许的另一个字符。它可以用作串联或驼峰大小写的替代形式,以形成多字标识符。
前导下划线通常用于表示标识符仅供本地使用,例如表示模块的非导出部分。这只是一个惯例;口译员不关心。
答案 3 :(得分:2)
在您的问题的上下文中,双下划线没有任何程序意义。对于Perl中有限数量的值,双下划线确实意味着特别的东西,最值得注意的是__FILE__
& __LINE__
。这些是特殊的文字,不带有印记($
,%
或@
),并且仅在引号之外插入。它们包含完整的路径&当前正在执行的文件的名称和正在执行的行。请参阅perldata或this post on Perl Monks
答案 4 :(得分:1)
我很确定arg2__size只是一个变量的名称。
答案 5 :(得分:1)
马克的答案当然是正确的,没有特别的意义。
但是我想要注意你的例子看起来根本不像Perl。 Perl变量不是裸字。正如您将从上面的链接中看到的那样,他们有了印记。 Perl没有“函数”,它有子程序。
因此,我们谈论的语言可能存在一些混淆。
答案 6 :(得分:-1)
您需要告诉解释器“$ arg2”是变量的名称。而不是“$ arg2__size”。为此,您需要使用括号。 (这种用法类似于shell中的用法)。
这应该有效 MyFunction的($ ARG1,$ {ARG2} __大小,$ ARG3)
- BINU