note
Kenosis
<p>Perhaps the following structure would be helpful:</p>
<c>
use strict;
use warnings;
use Data::Dumper;
my @list = 1 .. 15;
my @array;
my $i = 1;
while ( my ( $i, $j, $k ) = splice @list, 0, 3 ) {
push @array, [ [ $i, $j, $k ], [ 44, 55, 66, 22 ] ];
}
for my $arr (@array) {
print "@{ $arr->[0] }: @{ $arr->[1] }\n";
}
print "\n", Dumper \@array;
</c>
<p>Output:</p>
<c>
1 2 3: 44 55 66 22
4 5 6: 44 55 66 22
7 8 9: 44 55 66 22
10 11 12: 44 55 66 22
13 14 15: 44 55 66 22
$VAR1 = [
[
[
1,
2,
3
],
[
44,
55,
66,
22
]
],
[
[
4,
5,
6
],
[
44,
55,
66,
22
]
],
[
[
7,
8,
9
],
[
44,
55,
66,
22
]
],
[
[
10,
11,
12
],
[
44,
55,
66,
22
]
],
[
[
13,
14,
15
],
[
44,
55,
66,
22
]
]
];
</c>
<p>A reference to a reference to three values from <c>@list</c> and a reference to a four-element list is <c>push</c> onto <c>@array</c>. The <c>for</c> loop iterates through the list of references, and prints their dereferenced values. A dump of <c>@array</c> shows the structure.</p>
<p>Within the <c>for</c> loop, elements can be access as follows:</p>
<c>
[ [ $i, $j, $k ], [ 44, 55, 66, 22 ] ]
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
| | | | | | | | | + - $arr->[1][3]
| | | | | | | | + - $arr->[1][2]
| | | | | | | + - $arr->[1][1]
| | | | | | + - $arr->[1][0]
| | | | | + - $arr->[1]
| | | | + - $arr->[0][2]
| | | + - $arr->[0][1]
| | + - $arr->[0][0]
| + - $arr->[0]
+ - $arr
</c>
1014730
1014730