Во-первых, это не то, как вы определяете массив в Perl.Вы, вероятно, хотите сказать
my @folders = ( 'temp', 'usr', 'bin' );
Существует старый прием для создания вложенных ключей хеш-функции из списка:
my %the_path;
my $tmp = \%the_path;
foreach my $item( @folders ) {
$tmp->{$item} = { };
$tmp = $tmp->{$item};
}
Это приведет к структуре, подобной следующей:
$VAR1 = {
'temp' => {
'usr' => {
'bin' => {}
}
}
};
Если вы хотите заменить пустой хеш-адрес на самом нижнем уровне строкой, вы можете отслеживать переменную count внутри цикла.