use Path::Class qw/file dir/; my @homes = ( grep({$_->is_dir && $_->basename ne 'DUMMIES'} dir('/home')->children), grep({$_->is_dir} dir('/home/DUMMIES')->children) ); use File::Spec::Functions qw/splitdir/; # core module my @homes2 = ( grep({-d && (splitdir($_))[-1] ne 'DUMMIES'} glob '/home/*'), #OR: grep({-d && !m#/DUMMIES$#} glob '/home/*'), grep({-d} glob '/home/DUMMIES/*') );