use File::Find qw(find); use File::Path qw(rmtree); @ARGV = qw(.) unless @ARGV; my @goners; find sub { return unless -d; return unless $_ eq "_vti_cnf"; $File::Find::prune = 1; # don't descend, gone later anyway push @goners, $File::Find::name; }, @ARGV; rmtree \@goners, 1, 1; # trace, and ignore undeleteables