#!/usr/bin/perl use strict; use warnings; use File::Find::Rule; parseDir ('./rootdir'); sub parseDir { my ($dir) = @_; my @subdirs = File::Find::Rule->directory()->in($dir); parseDir ($_) for grep {!/^\.\.?$/ && $_ ne $dir} @subdirs; my @files = File::Find::Rule->file()->name('*.*')->in($dir); return if !@files; my $listFileName = ""; open my $listFile, '>', "$dir/List.txt" or return; print $listFile join "\n", @files, ''; }