理科系の備忘録

Linux/Ubuntu/Mac/Emacs/Computer vision/Robotics

Perlの2次元配列メモ

Perlで二次元配列を動的に生成する場合を考える.

for( $i=0; $i<200; $i++){
   for ($j=0; $j<@data1; $j++) {
	$data2[$i][$j] = $data1[$j];    
    }
}

このように書くだけで,動的に二次元配列とすることができる.ここで

$j<@data1

は,@data1の要素数だけループを回している.

配列の要素数を取り出すときは以下のようにすればよい.

scalar(@data1);
@data1+0;

いずれも同じ結果を返す.


2次元配列の場合は

# data2[][]の1つ目の[]の長さ
scalar(@data2);
@data2+0;

# data2[][]の2つ目の[]の長さ
scalar(@{$data2[0]});
@{$data2[0]}+0;

とすればよい.