#! perl -slw use strict; use Data::Dumper::SLC; sub multiDimInit { my( $value, $dim ) = ( shift, shift ); return $value unless $dim; return map{ [ multiDimInit( $value, @_ ) ] } 1 .. $dim; } my @multi = multiDimInit( 12345, 2, 2, 2, 2 ); Dump \@multi, 80, *STDOUT; __END__ P:\test>462436 [ [ [ [ [ '12345', ], [ '12345', ], ], [ [ '12345', ], [ '12345', ], ], ], [ [ [ '12345', ], [ '12345', ], ], [ [ '12345', ], [ '12345', ], ], ], ], [ [ [ [ '12345', ], [ '12345', ], ], [ [ '12345', ], [ '12345', ], ], ], [ [ [ '12345', ], [ '12345', ], ], [ [ '12345', ], [ '12345', ], ], ], ], ]