そのため、多次元配列を試していて、さまざまな方法でそれらにアクセスできることに気付きましたが、同じタスクを実行できます (以下のコードを参照)。strict/warnings を使用する場合、Perl は、コメントで ** で示されているフォームを使用しないように指示しました。
use strict;
use warnings;
my @a=();
push @a, [([1,1,1])];
push @a, [([2,2,2],[2,2,2])];
push @a, [([3,3,3],[3,3,3],[3,3,3])];
push @a, [([4],[4,4,4],[4,4,4],[4,4,4],[4,4,4],[4,4,4])];
print scalar(@a)."\n"; #Prints Size of outer array == 4
print scalar(@{@a[3]})."\n"; #Prints number of arrays in slot 3 of @a == 6 **
#or alternatively
print scalar(@{$a[3]})."\n"; #Prints number of arrays in slot 3 of @a == 6
print scalar(@{@{@a[3]}[0]})."\n"; #Prints size of array in @a of (3,0) == 1 **
#or alternatively
print scalar(@{$a[3][0]}); #Prints size of array in @a of (3,0) == 1
上記の 2 つの例には実際に機能的な違いがありますか? **が付いている行が他の行よりも悪いのはなぜですか? 単純に、相手よりも混乱しているということでしょうか?
前もって感謝します。