verse 不在列表上下文中隐式使用 $_,这是一个错误吗?
@array = reverse;
and
@array = reverse $_;
两者是不同的。 @array = reverse
不隐式使用 $_
。我们必须明确声明 $_
。这是一个非常奇怪的情况,默认情况下不使用 $_
。这是一个错误吗?
@array = reverse;
and
@array = reverse $_;
Both are different. @array = reverse
doesn't use $_
implicitly. We have to declare $_
explicitly. It's a very strange case where $_
is not being used by default. Is it a bug?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我了解 反向文档,
反向
适用于数组,因此它应该使用@_
而不是标量$_
?文档说“在标量上下文中不带参数使用,
reverse()
反转$_
”。 [强调已添加]As far as I understand from the reverse documentation,
reverse
works on arrays, and so it should use@_
rather than the scalar$_
?The documentation says "Used without arguments in scalar context,
reverse()
reverses$_
." [Emphasis added]官方文档中的内容都是 Perl 规范。如果 Perl 按照文档所说的那样做,那么它就不是一个错误。这是一个语言设计和实现的决定。
Whatever is in the official documentation is the Perl specification. If Perl does what the docs say it should do, then it is not a bug. It is a language design and implementation decision.