我试着得到第一个元素
$object->method()
返回一个列表。
我的第一个想法是尝试:
$object->method()[0]
但我得到这个错误:
syntax error at script.pl line 8, near ")["
Execution of script.pl aborted due to compilation errors.
所以我试着
print ($object->method())[0];
但是Perl "吃掉"了用于print的( )
,并且仍然有错误。
我需要做的是
print((object->method())[0]);
有更简单的方法吗?
2条答案
按热度按时间pkln4tw61#
它是Perl,所以有很多特殊的技巧可以做到这一点。
换另一个。
yyyllmsg2#
有一个特殊的技巧来做到这一点:
从
perldoc perlfunc
开始:下表中的任何函数都可以在其参数周围使用或不使用括号。(语法描述省略了括号。)如果使用括号,则会出现一个简单但偶尔令人惊讶的规则:它看起来像一个函数,因此它是一个函数,优先级无关紧要;否则它是一个列表运算符或一元运算符,优先级就有关系;函数和左括号之间的空格不算在内,所以有时候你需要小心:
来自#perl@libera IRC: