Rob*_*ert 6 syntax perl brackets operators curly-brackets
我只是想学习一点Perl并且遇到过这个问题:
foreach $element (@{$records})
{
do something;
}
Run Code Online (Sandbox Code Playgroud)
对于我的新手眼睛,这里写着:"对于一个名为@ {$ records}的数组中的每个元素,做一些事情"但是,因为这似乎是一个不太可能的数组名称(@{$完全用" "),我想它不是那样的简单?
我也遇到了" %$"一起使用.我知道%表示哈希并$表示标量,但不知道它们的含义.
任何人都可以对这些有所了解吗?
Mat*_*teo 10
在Perl中,您可以拥有数据结构的引用(指针):
# an array
my @array;
# a reference to an array
my $ref = \@array;
Run Code Online (Sandbox Code Playgroud)
当你有一个能够使用数组的引用时,你需要取消引用它
@{ $ref }
Run Code Online (Sandbox Code Playgroud)
如果您需要访问元素,请参阅
$array[0]
Run Code Online (Sandbox Code Playgroud)
你可以用引用做同样的事情
${$ref}[0]
Run Code Online (Sandbox Code Playgroud)
花括号{}是可选的,您也可以使用
$$ref[0]
@$ref
Run Code Online (Sandbox Code Playgroud)
但我个人发现它们的可读性较差.
这同样适用于其他每种类型(%$对于哈希引用).
见男子perlref的细节和人perlreftut的教程.
编辑
箭头运算符->也可用于取消引用数组或散列
$array_ref->[0]
Run Code Online (Sandbox Code Playgroud)
要么
$hash_ref->{key}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅man perlop
| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |