use warnings; use strict; use autodie; my $dir = '/tmp'; opendir my ($dh), $dir; my @dirs = grep { -d "$dir/$_" } readdir $dh; print scalar(@dirs), "\n";