Perhaps you could use: Archive::Extract
#!/usr/bin/perl -w
$| = 1;
BEGIN {open (STDERR, ">>error.txt"); }
print "Content-type: text/html\n\n";
use Archive::Extract;
use CGI::Carp qw/fatalsToBrowser/;
use File::Find;
use Cwd;
my $dir = cwd();
my $time = time;
my $cnt = 0;
my $who ='';
my $ok = '';
sub rm();
@directories = ("$dir/downloads/tamp");
find(\&rm, @directories);
sub rm() {
my ($filename) = $_;
# $File::Find::dir contains the current directory
# $File::Find::name contains the complete path name (dir + filename)
# $_ or $filename contains the filename alone.
my $temp_webfile = "$File::Find::name" . "_temp";
if (($filename =~ /\.(zip|tar)$/i) && ($filename !~ /search_edit/i)) {
$cnt++;
$who = $File::Find::name;
my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)
= stat($who);
$who = Archive::Extract->new( archive => "$who" )
$ok = $who->extract( to => "$dir/adult/plog-content/uploads" );
print "$cnt\t$filename\tcreated: $ctime\tCHMOD: $mode \n<br>";
}
}