You might want to use 'hash' for this purpose
my $hash;
my @component = qw / abs def gki jkl mno /;
my $root_dir = 'C:/Stuff/';
foreach my $c (@component){
foreach my $t (qw(this that)){
foreach my $n ('01','02'){
my $csv_file = join '_' => ($c,$t,$n);
$hash->{$c}{$t}{$n} = $root_dir.$csv_file;
}
}
}
Or depend upon your needs, you can simplify the code this way. That way, you will not need to pre-populate the hash.
my $root_dir = 'C:/Stuff/';
my $component = 'abs';
my $this_that = 'this';
my $index = '01';
my $csv_file = (join '_' => ($component,$this_that,$index)). '.csv';
my $csv_file_path = $root_dir.$csv_file;