use File::Find; my $basedir = '/some/path'; my $dircount = 0; find( sub { -d && $dircount++; print $FILE::Find::name, "\n"; }, $basedir }; printf "%s subdirectories found.\n", $dircount;