Perl2次元配列
2017年10月15日 (日) 08:48時点におけるimported>Webmasterによる版 (→配列への代入方法)
もう少し2次元配列について詳しく記録しておく
2次元配列のイメージはこんな感じだとおもう
\ | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
0 | あ | い | う | え | お |
1 | か | き | く | け | こ |
2 | さ | し | す | せ | そ |
3 | た | ち | つ | て | と |
単純な50音表、こんな形が2次元配列というイメージがあると思う
配列への代入方法
ひとつ、ひとつブラケット [
で括ってやって指定する方法
my @jdata;
$jdata[0][0] = "あ";
$jdata[0][1] = "い";
$jdata[0][2] = "う";
$jdata[0][3] = "え";
$jdata[0][4] = "お";
$jdata[1][0] = "か";
$jdata[1][1] = "き";
$jdata[1][2] = "く";
$jdata[1][3] = "け";
$jdata[1][4] = "こ";
foreach my $var1 (@jdata) {
foreach my $var2 (@{$var1}) {
print "$var2 ";
}
print "\n";
}
Push
を使ってまとめて指定する方法もあります
ここで注意しないといけないのは配列をリファレンスにしないといけないことです
push(@spec, \@chars);
の\@chars
で\がついているところが重要です
my @spec = ();
my @chars = qw/あ い う え お/;
push(@spec, \@chars);
my @chars = qw/か き こ け こ/;
push(@spec, \@chars);
foreach my $var1 (@jdata) {
foreach my $var2 (@{$var1}) {
print "$var2 ";
}
print "\n";
}
2次元配列の表示
配列の表示方法も2種類あるので意味を理解して使いましょう
foreach my $var1 (@spec){
foreach my $var2 (@$var1){
print "$var2 ";
}
print "\n";
}
foreach my $var1 (@spec) {
foreach my $var2 (@{$var1}) {
print "$var2 ";
}
print "\n";
}