为什么perl $$原型没有抓住两个参数

Eug*_*kov 0 perl prototype

我现在阅读http://www.perlmonks.org/?node_id=861966 但我对内部问题有疑问

造成原型sub atan2($$)的原因是什么?不会导致解析器只抓取两个参数:

所以

@a = (atan2 1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

没有成为

@a = (atan2(1, 2), 3);
Run Code Online (Sandbox Code Playgroud)

不允许perl这样做的原因是什么?

ike*_*ami 5

它会给读者带来极大的误导,忘记那些parens会默默地失败(至少在你的例子中).我想不出你想要这种行为的任何理由.

  • @Hunter McMillen,如何给出不做某事的两个很好的理由不回答为什么没有做到这一点? (3认同)