perl/二次元配列が作れた。〜リファレンスとデリファレンスを使用〜

perlに多次元配列がないということは、以前、本で知った。しかし、多次元配列がないといろいろ不便では?、と思い、ちょっと実験してみた。よーは、例えば、配列の中に配列を作るとなると、配列はスカラーしか持てないんだから、ポインタ(perlではリファレンスですね。すみません)でつっこんだらいいんじゃないかと思った訳です。てなわけで、実験をしてみました。

#! usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

# 一元配列を宣言し、それを別の配列に入れて二次元配列を作ってみる。
my @array1=(1,4,2,8,4);
my @array2=('at','hhdng','y7ngfm','jirgx','htrhfb');
my @array3=(44,678,'komage','gamage',6345);

my @array=(
    @array1,
    @array2,
    @array3
);

print Dumper \@array;
# 配列は、各要素にスカラーしか持てないので、配列要素にしようとしても無理〜。
print "\n";
print "@array","\n";
print "\n";

# ということで、スカラー値である配列のリファレンスを入れてみるー。

@array=(
    \@array1,
    \@array2,
    \@array3
);

print Dumper \@array;
print "\n";

# 二次元配列が作れたのはいいけど、いちいち一元配列を宣言するのがめんどくさいなー、ということで、他のやり方を探してみた。
# 「無名配列」という方法があるそうな。

my @non_array=(
    [4444,6666,7777,8888,9999],
    ["lplplp","kokokoko"],
    [51234,"ko53i1ni4","53okjgndn63o"]
);

print Dumper \@non_array;
print "\n";


# 二次元配列の要素の取り出し方〜。
print $non_array[0]->[0],"\n";#これと以下の3行は同じことー。

my $ref_non_array=\@non_array;
print $ref_non_array,"\n";
print $ref_non_array->[0]->[0],"\n";