perl 二次元・多次元配列の取り扱い

#久々にPerlさわったらすっかり忘れていたので・・・

----------------------- 配列 -------------------------------
■配列を静的に記述
@array = (
[4,5,6],
[1,2,3],
);
■4を出力
print $array[0][0];
■一次元目の要素数
print scalar(@array);
■二次元目の要素数
#$array[0]は配列のリファレンスなのでそれを解釈しなくてはならない
print scalar(@{$array[0]});
■ループ処理
foreach $var1 (@array) {
foreach $var2 (@{$var1}) {
print $var2;
}
}
for($i = 0; $i < scalar(@array); $i++) {
for($j = 0; $j < scalar(@{$array[$i]}); $j++) {
print $array[$i][$j];
}
}
■二次元目の3番目要素でソート
@array = sort { $a->[2] <=> $b->[2] } @array;
----------------------- 連想配列 ---------------------------
■連想配列を静的に記述
%array = (
'a0' => {
'a00' => 'hoge0',
'a01' => 'hoge1',
'a02' => 'hoge2',
},
'a1' => {
'a10' => 'hoge3',
'a11' => 'hoge4',
'a12' => 'hoge5',
},
);
■hoge0を出力
print $array{'a0'}{'a00'};
■ループ処理
foreach $key1 (keys(%array)) {
foreach $key2 (keys(%{$array{$key1}})) {
print $key2;
print $array{$key1}{$key2};
}
}

※keysやvaluesの戻り値はランダムになる

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA