my $file = 'list.name'; my @keepers; open FILE, $file or die $!; { local $/ = ','; my @keepers = ; } close FILE; my %keepers = map { $_ => 1 } @keepers; opendir(DIR, "./") or die $!; my %current_dirs = map { $_ => 1 } readdir(DIR); closedir DIR; foreach my $dir (keys %current_dirs) { next unless (-d $dir); rmdir($dir) unless $keepers{$dir}; }