use strict; use warnings; use autodie; use File::Path qw(make_path, rmtree); #Set vars my $destinationDir = 'C:\Users\Shaun\Documents\$website'; my $file; #Set File/Folders to exclude from delete my @KEEP = ( 'Prg421 pdf', ); #Set routine to do selective delete sub selective_delete { opendir my $deletes, $destinationDir; #Set params my @files = glob( "$deletes/*" ); my @files = ( readdir $deleletes ); #loop through directory copying all files and folders to $del for deletion FILE: while (my$file = @files) { for my $kp (@KEEP) { next FILE if $file eq $kp; } rmtree($deletes); } return; }