use strict; use warnings; use File::DirWalk; my $folder = 'E:\test\foldersize\1-folder|E:\test\foldersize\2-folder|E:\test\foldersize\5-folder'; my $depth = 3; my @directory = grep!/^\s*$/, split/\|/, $folder; my @folder; for my $directory (@directory){ my $dw = new File::DirWalk; $dw->onDirLeave(sub { my ($dir) = @_; return File::DirWalk::FAILED if ($dir eq $directory); push (@folder, $dir); return File::DirWalk::SUCCESS; }); $dw->setDepth($depth); $dw->walk($directory); } $,="\n"; print @folder;