Perl“反向逗号运算符”(例如,编程Perl,第4版)
发布时间:2020-12-15 23:27:28 所属栏目:大数据 来源:网络整理
导读:我正在阅读“ Programming Perl”并遇到了一个似乎没有意义的奇怪例子.本书描述了Perl中的逗号运算符如何在标量上下文中使用时仅返回最后的结果. 例: # After this statement,$stuff = "three"$stuff = ("one","two","three"); 然后,这本书在几页之后给出了
我正在阅读“
Programming Perl”并遇到了一个似乎没有意义的奇怪例子.本书描述了Perl中的逗号运算符如何在标量上下文中使用时仅返回最后的结果.
例: # After this statement,$stuff = "three" $stuff = ("one","two","three"); 然后,这本书在几页之后给出了这个“反向逗号运算符”的例子(第82页) # A "reverse comma operator". return (pop(@foo),pop(@foo))[0]; 然而对我来说,这似乎并没有反过来……? 例: # After this statement,$stuff = "three" $stuff = reverse_comma("one","three"); # Implementation of the "reverse comma operator" sub reverse_comma { return (pop(@_),pop(@_))[0]; } 这与正常的逗号运算符有何不同?结果是一样的,没有逆转! 这是一个确切页面的link.这个例子靠近底部. 解决方法
这是一个糟糕的例子,应该被遗忘.
它的演示很简单: >通常,如果在标量上下文中有逗号分隔的表达式序列,则可以将其解释为逗号运算符的实例,该运算符将计算序列中的最后一项. my $x = (1,2,3)[0]; 出于某种原因,本书将其称为“反向逗号运算符”.这用词不当;它只是一个列出第一个元素的列表. 通过在参数中使用pop函数两次,本书令人困惑.这些从左到右进行评估,因此第一个pop评估为“three”,第二个pop评估为“two”. 在任何情况下:不要在实际代码中使用逗号或“反向逗号”运算符.两者都可能会让未来的读者感到困惑. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – Native List在Jpa/hibernate Spring中插入查询
- vb.net – MsgBox和MessageBox.Show有区别吗?
- perl删除文件中的重复行
- 怎样设计一个良好大数据处理的解决方案?
- thinkPHP实现瀑布流的方法
- lua小脚本还是很像bash shell的,还是看看说明好好学习一下
- HDU 1002-A + B Problem II(大数类)
- 用Golang写一个搜索引擎(0x08)--- 索引的段
- CEGUI 0.6.2b build_samples_vs2005.bat 错误解决办法
- [bigdata-014] 在ubunut 14.04 上安装mongodb 2.4.9