perlによる、多次元配列に順次代入していく方法、多次元配列の出力、特定のキーでのソート
例えば以下のように宣言すれば、多次元配列を生成することができる。
my @array = ([1,2,3],[4,5,6]);
簡単な出力方法として、例えば以下の方法があるらしい。
foreach my $ref(@array){ print "@$ref\n"; }
出力結果
1 2 3 4 5 6
多次元配列の値を最初に宣言(代入)するのではなく、順次、多次元配列に値を追加(代入)するにはどうすればよいかというと、pushを使う方法があるらしい。
#!/usr/bin/perl use strict; use warnings; my @array; push(@array,([1,2,3])); push(@array,([4,5,6])); foreach my $ref(@array){ print "@$ref\n"; }
出力結果
1 2 3 4 5 6
ソート
上に例で言えば、「1と4」だとか「2と5」という風に、特定のキーについてソートを行いたい場合がある。これも簡単にできるらしい。
#!/usr/bin/perl use strict; use warnings; my @array; push(@array,([1,2,3])); push(@array,([4,5,2])); push(@array,([0,0,0])); foreach my $ref(@array){ print "@$ref\n"; } my @newarray = sort{$a->[1] <=> $b->[1]}@array; print "\n"; foreach my $ref(@newarray){ print "@$ref\n"; } @newarray = sort{$a->[2] <=> $b->[2]}@array; print "\n"; foreach my $ref(@newarray){ print "@$ref\n"; }
出力
1 2 3 4 5 2 0 0 0 0 0 0 1 2 3 4 5 2 0 0 0 4 5 2 1 2 3