神秘的Perl技巧:单引号分隔符
在老语言中工作,这种语言有向后兼容的特点,最大的乐趣之一就是发现一些遗留下来的遗迹。几周前,我在阅读perlmod时发现了这个
旧的包分隔符是单引号……这只是为了让Ada程序员感觉他们知道发生了什么……为了向后兼容,旧式的语法仍然被支持
多么有趣!Ada使用单引号作为属性分隔符,类似于英语中的所有格
Customer'name
在Perl中,我可以用单引号替换两个冒号分隔符。所以这个简单的包声明和脚本
package My::Customer;
sub name { 'Dobby the Sheep' }
package main;
print My::Customer::name();
变成
package My'Customer;
sub name { 'Dobby the Sheep' }
package main;
print My'Customer'name();
你可以看到单引号可以替换包名中的命名空间分隔符和在调用name()
时的属性访问器。运行这段代码会按预期打印出“Dobby the Sheep”,但在我编辑器中的语法高亮显示相当混乱。
参考文献
- 关于产生Ada的高级语言工作组详细描述
- 你可以在线上或通过在命令行中键入
perldoc perlmod
来阅读perlmod。
这篇文章最初发表在PerlTricks.com上。
标签
反馈
这篇文章有什么问题吗?请通过在GitHub上打开问题或拉取请求来帮助我们。