什么是+的,从一个代码块歧义消除一个hashref前面的历史?(What's the his

2019-08-31 23:33发布

我想读多一点关于通常置于hashref,有助于从一个代码块消除歧义前面的+。

  • 当它被首次引入?

  • 谁首先介绍了它(推荐它)?

  • 人们是如何解决这个问题去这是之前推出?

  • 任何琐事或注意到,想到在使用此语法?

Answer 1:

消除歧义从匿名hashref构造一个代码块的具体情况不能比匿名hashref构造,这是用Perl 5.0早在1993-4加入老。 在此之前并不存在这个问题。

但“一元加”已经有较长的 - 因为Perl 4至少(它在Perl 1是不存在,但它可能已添加的任何时间中间的几年里,据我所知去)。 它总是做同样的事情,迫使其RHS进行评估作为一个术语,而不是其他任何东西,可能是有意义的背景下,又有区别,例如:

print (1 + 2), 42; # Does nothing useful with 42!

print +(1 + 2), 42; # Prints 3 and 42.


文章来源: What's the history of the + in front of a hashref that disambiguates from a code block?
标签: perl syntax hash