#!/usr/bin/perl
#多次元配列
#多次元配列は要素括弧でくくって以下の書式で作成したり
#$ary[0][0]='hoge'のように1つずつ設定することもできる

#多次元配列を作る
@ary = (
  ['a', 'b'],
  ['c', 'd', 'e']
);

#区切り文字変更
$, = ", ";
#そのままprint
#結果 ARRAY(0x9670818), ARRAY(0x968a6b8) 
print @ary;
print "\n";

# 結果
# 0 : a, b
# 1 : c, d, e
&printary(@ary);

# 結果
# 0-0 : a  0-1 : b
# 1-0 : c  1-1 : d  1-2 : e
&printary2(@ary);


#配列再初期化
@ary = ();
#配列の内容を一つずつ設定
$ary[0][0] = 'A';
$ary[0][1] = 'B';
$ary[1][0] = 'C';
$ary[1][1] = 'D';
$ary[1][2] = 'E';
$ary[3][0] = 'F';

# 結果
#0 : A B
#1 : C D E
#2 :
#3 : F
&printary(@ary);

# 結果
#0-0 : A  0-1 : B
#1-0 : C  1-1 : D  1-2 : E
#
#3-0 : F
&printary2(@ary);

# 配列の中の配列をprint、@{}で囲んでやらないとARRAY(0x9670818)がprintされる
sub printary {
  @ary = @_;

  for (my $i = 0; $i < scalar(@ary); $i++) {
    print "$i : @{$ary[$i]}\n";
  }
  print "\n";
}

# 配列のなかの配列を1つずつprint
sub printary2 {
  @ary = @_;
  for (my $i = 0; $i < scalar(@ary); $i++) {
    for (my $j = 0; $j < scalar(@{$ary[$i]}); $j++) {
      print "$i-$j : $ary[$i][$j]  ";
    }
    print "\n";
  }
  print "\n";

}
