我對perl很陌生,試圖創建一個zip文件。這些文件,腳本都在同一個目錄中,並且zip也只需要在那裏。下面是我正在嘗試的代碼,它正在退出,沒有任何錯誤,但沒有任何zip文件。我傳遞「* .txt」作爲命令行參數。請建議。在perl上創建遠程服務器上的文件的zip文件
use strict;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
die "usage: $0 zip.pl\n"
if (scalar(@ARGV) < 1);
my $zipName = "dummy";
my $zip = Archive::Zip->new();
foreach my $memberName (map { glob} @ARGV) {
if (-d $memberName) {
warn "Can't add tree $memberName\n"
if $zip->addTree($memberName, $memberName) != AZ_OK;
} else {
$zip->addFile($memberName)
or warn "Can't add file $memberName\n";
}
}
my $status = $zip->writeToFileNamed($zipName);
exit $status;
在Linux上工作時,*可能*在Windows擴展問題上試試'$ zipName =「dummy.zip」'並檢查它是否有效。 –
M在windows上工作,嘗試在名稱中使用「.zip」,沒有幫助。另請看看我傳遞* .txt作爲參數,並且我有abc.txt,xyz.txt文件出現在位置上。那是對的嗎? – Sur
你是否用雙引號將它傳遞爲'*'是特殊字符,或者一旦將'map {glob} @ ARGV'改爲'glob「* .txt」'並驗證。 –