2017-07-26 30 views
-3

我有一個名爲@array_of_boards的數組,其中的數據如下所示: [{1,2,3},{4,5,6},{3,4,5}]如何從perl中逐行讀取二維數組中的數據?

我該如何循環這個數組來逐行讀取數據,因爲我必須將它們插入到表中。

ColA,ColB,ColC 
1,2,3 
4,5,6 
3,4,5 

my @array_of_boards=(0,0,0); 
my @temp_array = (1,2,3); 
push @array_of_boards,@temp_array 
@temp_array = (4,5,6); 
push @array_of_boards,@temp_array 
@temp_array = (3,4,5); 
push @array_of_boards,@temp_array 

我試過使用它,但它無法正確地對齊數據。

foreach my $row (@array_of_boards){ 
    my ($ColA,$ColB,$ColC)=$row; 
    ##followed by printing statements 
} 
+1

DEREF:'我的($可口可樂,$ COLB,$ COLC)= @ {$行};'參見:'的perldoc perldsc' – toolic

+0

我面臨的一個錯誤,而這樣做 – user3800888

+0

我推一個數組(1 ,2,3) (例如)每次轉換爲@array_of_boards。我訪問每一行的方式是否錯誤? – user3800888

回答

0

此代碼:

my @array_of_boards = (0, 0, 0); 
my @temp_array = (1, 2, 3); 
push(@array_of_boards, @temp_array); 

等效於此:

my @array_of_boards = (0, 0, 0); 
push(@array_of_boards, 1, 2, 3); 

,併產生包含六個元素,你可以在輸出看到Data::Dumper數組:

$VAR1 = [ 
      0, 
      0, 
      0, 
      1, 
      2, 
      3 
     ]; 

相反,外陣列的每個元素應該是一個數組引用,像這樣:

my @array_of_boards = ([0, 0, 0]); 
push(@array_of_boards, [1, 2, 3]); 

這導致瞭如下的數據結構:

$VAR1 = [ 
      [ 
      0, 
      0, 
      0 
      ], 
      [ 
      1, 
      2, 
      3 
      ] 
     ]; 

然後可以按預期進行訪問:

for my $array_ref (@array_of_boards) { 
    my @row = @$array_ref; 
    ... 
}