in reply to Alternative for a directory builder
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)); }
This could be shortened
my $dir; for ( file($path)->dir->dir_list() ) { $dir = $dir ? $dir->subdir($_) : dir($_); say $dir; }
Or mappified:
my $dir; my @paths = map { $dir = $dir ? $dir->subdir($_) : dir($_) } file($path)->dir->dir_list();
|
|---|