Perl运算符是“发现”而不是设计的?

时间:2013-07-09 22:54:12

标签: perl

只需阅读此页面:https://github.com/book/perlsecret/blob/master/lib/perlsecret.pod,并对以下语句感到惊讶:

Discovered by Philippe Bruhat, 2012.
Discovered by Abigail, 2010. (Alternate nickname: "grappling hook")
Discovered by Rafaël Garcia-Suarez, 2009.
Discovered by Philippe Bruhat, 2007.

依旧......

上述运算符 DISCOVERED ,因此perl-design不是故意的吗?

这意味着可能比perl sill有一些随机的字符序列正确的顺序做一些有用的事情,如()x!!“运算符”?< / p>

这是发现操作员的其他任何语言吗?

2 个答案:

答案 0 :(得分:13)

从您关联的页面:

  

这些 Perl程序员看到的就像运营商一样   他们经常在不考虑他们的情况下认出他们   较小的部分,并最终将它们添加到他们的工具箱中。他们是   就像他们必须发现的秘密一样   未来的用户(或由其他程序员传播),因为他们   没有明确记录。

也就是说,他们并不是真正属于他们自己的运营商,但他们是由较小的运营商组成的,这些运营商加在一起做了一些事情。

例如,'venus'运算符(0++0)在左侧或右侧对对象进行编号。这就是以任何形式添加零,“秘密”操作员与否。

答案 1 :(得分:4)

Perl有许多做特殊事情的操作符,以及在特定上下文中解释时执行特殊操作的字符。而不是这些是实际的“运算符”(即,未被Perl解析器明确识别),将它们视为某些函数/操作的组合。例如,()X!!(称为“企业”运算符)由()组成,后者是x,后跟!!,后面是{{1}}。 (“bang bang”运算符),执行布尔转换。这是Perl如此富有表现力的原因之一。