我对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”'并验证。 –