use strict;
my @a;
my @b = ();
@a = (3, 4);
push @b, [@a];
my @c = @b[0];
print @c;
如何正确检索@c?它告诉我标量值@b[0]最好写成$b[0]。
(出于隐私原因,这不是我的真实代码,但在实际代码中,我有这样的东西:
my @a = @{$b[$i]};
print @a;
上面写着"使用未初始化的值",但仍然输出它应该输出的内容。
如果您有一个存储在$b[0]
中的数组引用-这是您的情况-那么您将其检索为
$ref = $b[0] # I just want it as a reference
或
@arr = @{$b[0]} # I want it as a (new) array
或
$elt = $b[0][1] # I want to directly access the second element
$elt = $b[0]->[1] # alternative syntax, same thing.
有关数组访问语法的详细信息,请参见perldata
@c[0]
是一个单元素数组切片(!)$c[0]
是正确的
$c[0]->[0]
为"3",$c[0]->[1]
为"4"
有关数组的数组的详细信息,请参见perldsc和perllol