in reply to How would you handle arrays of arrays?

I'll admit that I don't understand your text description of what you are trying to accomplish. But, it seems from your code that you don't really need an array-of-arrays data structure; a simple array will suffice. Your two "for" loops just seem to flatten your AoA structure, so you might as well just use a simple array:
my @allDACDirs = (@configapp1, @configbbb); for my $i (0 .. $#allDACDirs) { ...
Or maybe I'm not good at following depth in multi-dimensional arrays.
Data::Dumper is a handy tool for understanding Perl data structures.

On a side note, you could save a little typing on your array constructors using qw:

my @configbbb = qw( m:configbbb f:b1.0 f:bb1.0.config );

Update: Here is a crack at a more complex data structure and how you would navigate it:

use strict; use warnings; use Data::Dumper; my @allDACDirs = ( { dir => 'conf', root => 'configapp1', files => [ {subdir => 'conf', name => '4K_logging.properties'}, {subdir => 'conf', name => 'logging.properties' }, {name => 'dactest1'}, ] }, { root => 'configbbb', files => [ {name => 'b1.0'}, {name => 'bb1.0.config'}, ] } ); #print Dumper(\@allDACDirs); # for debug for my $href (@allDACDirs) { my %h = %$href; my $curr_dir = "$location/$h{root}"; # mkdir curr_dir... if (exists $h{dir}) { # mkdir curr_dir/$h{dir}... } for my $ref (@{ $h{files} }) { if (exists ${$ref}{subdir}) { # mkdir subdir... # create file... } else { # create file... } } }