in reply to How to determine whether a dir entry is a directory?

sub readin_dirs { my $dir = shift; my $DIR; # I use variable file handles so function can be reentrant opendir $DIR, $dir or die "opendir $dir - $!"; my @entries = readdir $DIR; # Get only directories from dir listing. my @subdirs = grep { -d "$dir/$_" } @entries; # Remove "hidden" directories (including . and ..) from that list: @subdirs = grep { !/^\./ } @subdirs; for my $subdir ( @subdirs ) { now_do_something("$dir/$subdir"); } closedir $DIR; }