在Perl中打印第二行数组

Sim*_*eth 1 arrays perl 2d multidimensional-array

我有下面的代码,我试图只打印出这个2d数组的第一行

# how many columns
for (my $c = 0; $c <= $#list[0]; $c++) {
print $list[0][$c]."\n";
Run Code Online (Sandbox Code Playgroud)

数据应该是这样的

[0] => "ID,Cluster,Version"
[1] => "2,32,v44"
Run Code Online (Sandbox Code Playgroud)

错误:

syntax error at ./connect_qb.pl line 107, near "$#list["
syntax error at ./connect_qb.pl line 107, near "++) "
Execution of ./connect_qb.pl aborted due to compilation errors.
Run Code Online (Sandbox Code Playgroud)

ike*_*ami 5

$list[0]
Run Code Online (Sandbox Code Playgroud)

是对数组的引用,所以数组是

@{ $list[0] }
Run Code Online (Sandbox Code Playgroud)

所以该数组的最后一个元素是

$#{ $list[0] }
Run Code Online (Sandbox Code Playgroud)

所以你要用

for my $c (0 .. $#{ $list[0] }) {
   print "$list[0][$c]\n";
}
Run Code Online (Sandbox Code Playgroud)

要么

for (@{ $list[0] }) {
   print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)