in reply to Grouping files with the same name...
#!/usr/bin/perl use strict; use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); my $some_dir = 'sql'; opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!"; my @files = readdir(DIR); closedir DIR; @files = sort @files; my $f2z; foreach my $file (@files){ if ($file=~/^\.$/){ next; } elsif(-d $file){ next; } else{ my ($name,$ext) = split(/\./, $file); push(@{$f2z->{$name}}, $file); } } while (my($key, $value) = each(%{$f2z})){ #print $key.", ".$value."<br />"; my $zip = Archive::Zip->new(); chdir($some_dir); foreach my $v (@{$value}){ $zip->addFile( "$v" ); } unless ( $zip->writeToFileNamed("$key.zip") == AZ_OK ) { die 'write error'; } }
|
|---|