for (my $i = 0; $i <= $#_; $i++) { next unless $_[$i] =~ /^(.+?)\.(zip|t?gz|tar|bz2?|tbz)$/i or $_[$i] =~ /$config_regexp/i or $_[$i] =~ /banner\d?\.(jpe?g|gif|png)$/i or $_[$i] =~ /^template\.html?$/i; my($volume, $directories, $file) = File::Spec->splitpath($File::Find::dir); my @dirs = File::Spec->splitdir($directories); # unzip any compressed files if ($_[$i] =~ /^(.+?)\.(zip|t?gz|tar|bz2?|tbz)$/i) { # sometimes File::Temp can't clean up properly for (my $x = 0; $x <= $#_; $x++) { my $dir = File::Spec->catfile($File::Find::dir, $_[$x]); if (-d $dir && $_[$x] =~ /^$1\-EXTRACTED.{5}$/) { rmtree($dir); undef $_[$x]; } }