my $dir = '/foo/bar'; opendir DH, $dir or die $!; my @subdirs = grep { -d } map { "$dir/$_" } grep { $_ ne '.' && $_ ne '..' } readdir DH; closedir DH;