我只是想学习一些Perl,并且遇到了这个问题:
foreach $element (@{$records})
{
do something;
}
在我的新手看来,这是:
“对于名为@ {$ records}的数组中的每个元素,执行某项操作”
但是,由于这似乎是数组的一个不太可能的名称(总共带有“
@{$
”),所以我想这不是那么简单吗?我也遇到了一起使用的“
%$
”。我知道
%
表示哈希,而$
表示标量,但不知道它们在一起的含义。任何人都可以阐明这些吗?
最佳答案
在Perl中,您可以具有对数据结构的引用(指针):
# an array
my @array;
# a reference to an array
my $ref = \@array;
当您有一个引用可以使用该数组时,您需要取消引用
@{ $ref }
如果您需要像这样访问元素
$array[0]
你可以引用做同样的事情
${$ref}[0]
大括号
{}
是可选的,您也可以使用$$ref[0]
@$ref
但我个人认为它们的可读性较差。
其他所有类型也一样(作为哈希引用的
%$
)。有关详细信息,请参见man perlref;有关教程,请参见man perlreftut。
编辑
箭头运算符
->
也可用于取消引用数组或哈希$array_ref->[0]
或者
$hash_ref->{key}
有关详细信息,请参见man perlop。
关于perl - 连续的运算符和括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12318937/