以下是Markdown来源的一个例子:
sub _StripLinkDefinitions{ somecode }
这是什么意思?它只是一种惯例还是语言的一部分?
答案 0 :(得分:8)
这是一项惯例,记录在perlstyle:
中您可以使用前导下划线表示变量或 函数不应该在定义它的包之外使用。
此外,在Perl best practices第49页中说:
前缀“仅供内部使用”带下划线的子程序。
解释:
实用程序子例程仅用于简化a的实现 模块或类。永远不应该从它的模块中导出 也永远不会在客户代码中使用。
始终使用下划线作为 任何实用程序子程序名称的第一个“字母”。领先的下划线 是丑陋的,不寻常的和保留(通过古老的C / Unix惯例) 系统的非公共组件。领先的存在 在子程序调用中的下划线使其在部分时立即显而易见 该实现被误认为是界面的一部分。
相关:下划线也有特殊含义,作为语言的一部分 - 例如:
$_
- 默认输入和模式搜索空间。@_
- 所有子程序参数的列表_
- 特殊文件处理缓存来自上一个stat
或文件测试运算符(例如-f
)的信息__DATA__
,__END__
,__FILE__
,__PACKAGE__
,__LINE__