在Perl中以下划线开头的子例程名称

时间:2015-04-08 21:14:44

标签: perl

以下是Markdown来源的一个例子:

sub _StripLinkDefinitions{ somecode }

这是什么意思?它只是一种惯例还是语言的一部分?

1 个答案:

答案 0 :(得分:8)

这是一项惯例,记录在perlstyle

  

可以使用前导下划线表示变量或   函数不应该在定义它的包之外使用。

此外,在Perl best practices第49页中说:

  

前缀“仅供内部使用”带下划线的子程序。

解释:

  

实用程序子例程仅用于简化a的实现   模块或类。永远不应该从它的模块中导出   也永远不会在客户代码中使用。

     

始终使用下划线作为   任何实用程序子程序名称的第一个“字母”。领先的下划线   是丑陋的,不寻常的和保留(通过古老的C / Unix惯例)   系统的非公共组件。领先的存在   在子程序调用中的下划线使其在部分时立即显而易见   该实现被误认为是界面的一部分。

相关:下划线也有特殊含义,作为语言的一部分 - 例如:

  • 变量的名称只是下划线,(检查perlvar) - 例如:
    • $_ - 默认输入和模式搜索空间。
    • @_ - 所有子程序参数的列表
    • _ - 特殊文件处理缓存来自上一个stat或文件测试运算符(例如-f)的信息
  • 语言结构以双下划线开头和结尾的内容,例如:__DATA____END____FILE____PACKAGE____LINE__