use File::Find::Rule qw();
my @matches =
File::Find::Rule
->name(qw(A B C D))
->directory
->in('.');
それだけで罰金深いディレクトリを処理します。
$ mkdir -p a/b/c/d/e/f/g/h/i/j/k/l
$ touch a/b/c/d/e/f/g/h/i/j/k/l/file
$ mkdir -p 0/1/2/3/4/5/6/7/8/9
$ touch 0/1/2/3/4/5/6/7/8/9/file
$ perl -MFile::Find::Rule -E'say for File::Find::Rule->in(".")'
.
a
a/b
a/b/c
a/b/c/d
a/b/c/d/e
a/b/c/d/e/f
a/b/c/d/e/f/g
a/b/c/d/e/f/g/h
a/b/c/d/e/f/g/h/i
a/b/c/d/e/f/g/h/i/j
a/b/c/d/e/f/g/h/i/j/k
a/b/c/d/e/f/g/h/i/j/k/l
a/b/c/d/e/f/g/h/i/j/k/l/file
0
0/1
0/1/2
0/1/2/3
0/1/2/3/4
0/1/2/3/4/5
0/1/2/3/4/5/6
0/1/2/3/4/5/6/7
0/1/2/3/4/5/6/7/8
0/1/2/3/4/5/6/7/8/9
0/1/2/3/4/5/6/7/8/9/file
私はそこに同じ質問とその答えがあると思います。http://stackoverflow.com/questions/4318769/perl-get-parent-folder-name –
言語の名前は「PERL」ではなく「Perl」です。頭字語ではありません。それは意図的に「Pearl」のスペルミスです。 – ikegami