che ve ne pare di questo:

foreach $dir (grep -d && !/^\.\.?$/, readdir($path)) {print "$dir\n";}