use strict;
use warnings;
use feature qw( say );
use Path::Class qw( dir file );
my $path = "/aaaa/bbbb/cccc/dddd/index.html";
my @dir_split = file($path)->dir->dir_list();
my $dir = dir(shift(@dir_split));
for (;;) {
say $dir;
last if !@dir_split;
$dir = $dir->subdir(shift(@dir_split));
}
####
my $dir;
for ( file($path)->dir->dir_list() ) {
$dir = $dir ? $dir->subdir($_) : dir($_);
say $dir;
}
##
##
my $dir;
my @paths = map { $dir = $dir ? $dir->subdir($_) : dir($_) }
file($path)->dir->dir_list();