我试图了解别人的Perl代码,而不知道自己多么Perl。我很感谢你的帮助。什么是Perl中的双下划线?
我遇到一个Perl函数沿着这些线路:
MyFunction($arg1,$arg2__size,$arg3)
有没有意义的双下划线语法$arg2
,还是仅仅是第二个参数的名称的一部分?
我试图了解别人的Perl代码,而不知道自己多么Perl。我很感谢你的帮助。什么是Perl中的双下划线?
我遇到一个Perl函数沿着这些线路:
MyFunction($arg1,$arg2__size,$arg3)
有没有意义的双下划线语法$arg2
,还是仅仅是第二个参数的名称的一部分?
在perl变量名中使用__没有特定的含义。这可能是程序员的偏好,特别是在你引用你的问题的情况下。您可以看到更多关于perl变量命名为here的信息。
我相当确定arg2__size只是一个变量的名称。
在大多数语言中,下划线只是标识符的一部分;没有特别的意义。
但你确定它是Perl吗?变量上没有任何标识。你能发布更多的上下文吗?
就解释器而言,下划线只是标识符中允许的另一个字符。它可以用作拼接或骆驼案例的替代形式来形成多字标识符。
前导下划线通常用于表示标识符仅用于本地使用,例如。用于模块的非导出部分。这只是一个惯例;口译员不在乎。
在您的问题的上下文中,双下划线没有任何编程意义。双下划线对于Perl中有限数量的值意味着一些特殊的值,特别是__FILE__
& __LINE__
。这些是不带前缀的特殊文字($
,%
或@
),并且仅在引号之外插入。它们包含当前正在执行的文件的名称和正在执行的行的完整路径&。请参阅perldata或this post on Perl Monks
中的'特殊字母'一节。
但我想指出,你的例子看起来不像Perl。 Perl变量不是裸语。他们有印记,你会从上面的链接看到。 Perl没有“功能”,它有子程序。
因此,我们所讨论的语言可能存在一些混淆。
您需要告诉解释器“$ arg2”是变量的名称。而不是“$ arg2__size”。为此,您需要使用括号。 (这个用法与shell中的用法类似)。
这应该工作 MyFunction的($ ARG1 $ {ARG2} __大小,$ ARG3)
--Binu
哎呀,他们让任何人在这里;) – Ovid 2008-09-19 15:36:24
啊 - 什么是网站来。认真。 – 2008-09-19 17:04:36