索引由子例程返回的列表-语法

丹尼尔

鉴于我有以下不正确的代码:

my $this_is_easier = caller(0)[0];

为什么我必须执行以下操作才能进行编译?

my $this_is_easier = (caller(0))[0];

这只是Perl解析器的细微差别吗?在其他语言(如Python和C ++)中,假定该函数将返回可索引的内容。

池上

[]遵循另一个索引时,则表示取消引用。

$foo[...][...]   means   $foo[...]->[...]

()遵循另一个索引时,则表示取消引用。

$foo[...](...)   means   $foo[...]->(...)

因此,人们期望是非常合理的

foo(...)[...]

意思是

foo(...)->[...]

而不是

( foo(...) )[0]

期望的差异可能是不被支持的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章