in reply to 1d array into 3d

I had fun with this:

#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my @flat = ( 1 .. 9 ) x 3; sub make_matrix { my ($dims_ref, $flat_ref) = @_; my @dims = @$dims_ref; my $current_dim = shift @dims; my $result = []; return [ splice @$flat_ref, 0, $current_dim ] unless @dims; for ( 1 .. $current_dim ) { push @$result, make_matrix( \@dims, $flat_ref ); } return $result; } # @flat is spliced to itty bits :( my $matrix = make_matrix( [ 3, 3, 3 ], \@flat ); print Dumper($matrix); printf "%d x %d x %d\n", scalar @$matrix, scalar @{$matrix->[0]}, scalar @{$matrix->[0][0]} +;