我想更多地了解一下通常放在hashref前面的+,它有助于消除代码块的歧义。
什么时候刚推出?
谁先介绍它(推荐它)?
人们是如何在引入之前解决问题的?
使用此语法时会想到任何琐事或注意事项?
答案 0 :(得分:9)
从匿名hashref构造函数中消除代码块歧义的具体情况不能比匿名hashref构造函数更早,后者在1993-4中添加了Perl 5.0。在此之前,问题不存在。
但是“一元加”已经存在了很长时间 - 至少从Perl 4开始(它在Perl 1中不存在,但是在我介绍的几年里它可以在任何时间添加,据我所知)。它总是做同样的事情,强迫它的RHS被评估为一个术语,而不是在上下文中可能有意义的任何其他东西,并区分,例如:
print (1 + 2), 42; # Does nothing useful with 42!
这
print +(1 + 2), 42; # Prints 3 and 42.