sub recursive_remove { my($dir) = @_; opendir(DIR, $dir) || die "Error: $dir $!\n"; foreach my $file (readdir(DIR)) { next if $file =~ /^\.{1,2}/; rmdir($dir) || recursive_remove($dir . "/" . $file); } } recursive_remove('C:/temp/' . $ARGV[0]);