Perl 中 \@array 是什么意思?
我有一些 Perl 代码,我注意到数组使用了一个前导反斜杠,如 \@array
谁能解释一下它是什么意思?
I have some Perl code where I noticed an array is used with a leading backslash like \@array
Can anybody explain what does it mean?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
\@
表示法将返回对所提供数组的引用(或指针),因此:将使
$arrayref
成为对@array
的引用 -这类似于在 C 中使用*p
指针表示法。the
\@
notation will return a reference (or pointer) to the array provided, so:will make
$arrayref
a reference to@array
- this is similar to using the*p
pointer notation in C.这意味着它是对数组的引用。
查看 perl 文档,它解释得很好
It means it's a reference to an array.
See the perl documentation that explains it well
数组引用主要用作子例程的参数。如果没有引用,传递数组
@a
(包含元素 1、2、3)与分别将 1、2 和 3 传递给 sub 几乎相同。使用\@array
,子程序可以看到整个数组,例如显式确定其长度,对其进行操作以便调用者可以看到更改等。这种能力的代价是子程序必须访问数组元素时使用更复杂的语法:$$a[0]
而不是$a[0]
。Array references are primarily useful as parameters to subroutines. Without references, passing the array
@a
(with the elements 1,2,3) is pretty much the same as passing 1, 2, and 3 separately to the sub. With\@array
, the sub can see the entire array, e.g. determine its length explicitly, manipulate it so that the caller can sees the changes, etc. The price for that power is that the sub has to use more complicated syntax when accessing the array elements:$$a[0]
instead of$a[0]
.