反向不会在列表上下文中隐式使用$ _,这是一个错误吗?

时间:2011-10-24 03:49:36

标签: perl

@array = reverse; 
and 
@array = reverse $_;

两者都不同。 @array = reverse不会隐式使用$_。我们必须明确声明$_。这是一个非常奇怪的情况,默认情况下不使用$_。这是一个错误吗?

2 个答案:

答案 0 :(得分:9)

据我所知reverse documentationreverse适用于数组,所以它应该使用@_而不是标量$_

文档说“在标量上下文中使用没有参数reverse()反转$_。” [强调补充]

$_ = "dlrow ,olleH";
print reverse;                              # No output, list context
print scalar reverse;                       # Hello, world

答案 1 :(得分:4)

官方文档中的任何内容都是Perl规范。如果Perl做了文档说应该做的事情,那么它不是一个bug。这是一种语言设计和实施决策。