2011-05-20 51 views
0

我試圖用perl的Archive :: Zip模塊創建zip文件。我有一些已經創建的zip文件,其中每個包含一個csv文件。我希望,如果可能的話,不用提取文件,創建一個包含所有單個csv文件的大型壓縮文件。 例如,我有: 2010-01.zip 2010-02.zip 2010-03.zip 。 。 2010-12.zip使用perl創建其他zip文件的zip集合

我想創建一個包含12個csv文件(2010-01.csv,2010-02.csv ... 2010-12.csv)的2010.zip文件。

我最多的代碼到現在是:

my $aggzip = Archive::Zip->new(); 

# get all zip files for this year 
my @files = <$path*$year*.zip>; 

foreach my $file (@files) { 
    my $zip = Archive::Zip->new($file); 
    my @members = $zip->members(); 

    my $filename = %{$members[0]}->{'fileName'}; 

    $aggzip->addFile($level2Path.$filename, $filename); 
} 

if ($aggzip->writeToFileNamed($year.".zip") != AZ_OK) { 
    die 'write error'; 
} 

這是行不通的。有任何想法嗎?

+5

任何錯誤消息? $ level2Path未在您的代碼中定義。它存在嗎?它有價值嗎?添加使用嚴格;使用警告;添加調試打印語句以檢查變量是否包含您認爲他們所做的事情。 – Raoul 2011-05-20 14:51:17

回答

0

嘗試顯示

my $filename = $members[0]->fileName(); 
+1

請考慮編輯更多信息,即 - 回答「爲什麼?」 – 2011-05-22 03:24:26