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