Perlでは正確には二次元配列は利用できない。
サブルーチンの引数は@_の単なる配列にまとめられちゃうので、
複数の配列や多次元配列を渡す時は参照渡しにする。
以下は、
123456abc
と出力したいわけだが、
hoge1ではうまくいかない。
#--------------------------------------------------------------- @array1 = ( [1,2,3], [4,5,6], ); @array2 = ('a','b','c'); #--------------------------------------------------------------- &hoge1(@array1,@array2); sub hoge1 { my @hoge1 = shift; my @hoge2 = shift; foreach $var1 (@hoge1) { foreach $var1_2 (@{$var1}) { print $var1_2; } } foreach $var2 (@hoge2) { print $var2; } } #--------------------------------------------------------------- &hoge2(\@array1,\@array2); sub hoge2 { my $hoge1 = shift; my $hoge2 = shift; #デリファレンス my @hoge1 = @{$hoge1}; my @hoge2 = @{$hoge2}; foreach $var1 (@hoge1) { foreach $var1_2 (@{$var1}) { print $var1_2; } } foreach $var2 (@hoge2) { print $var2; } }