2017-07-26 18 views
-3

私は@ array_of_boardsという名前の配列を持っており、その中のデータは [{1,2,3},{4,5,6},{3,4,5}]のようになります。2次元配列から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

被参照: '私の($コーラ、$ COLB、$ COLC)= @ {$行は};'も参照してください: 'はperldoc – toolic

+0

perldsc'私は配列をプッシュしています。この – 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からの出力で見ることができる6つの要素を、含む配列を生成します。

$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; 
    ... 
} 
関連する問題