Perl 如果目标目录没有';不存在?
我将Perl 5.16.3与 我正在提取一个zip文件,但是如果目标目录不存在,我希望Perl失败(死亡)。目前,下面的代码没有失败,但在提取之前创建了目录Perl 如果目标目录没有';不存在?,perl,extract,archive,Perl,Extract,Archive,我将Perl 5.16.3与 我正在提取一个zip文件,但是如果目标目录不存在,我希望Perl失败(死亡)。目前,下面的代码没有失败,但在提取之前创建了目录 use Archive::Extract; ... my $ae = Archive::Extract->new( archive => $downloadedFile, type => 'zip' ); my $ok = $ae->extract( to => $deployDir ) or die $ae
use Archive::Extract;
...
my $ae = Archive::Extract->new( archive => $downloadedFile, type => 'zip' );
my $ok = $ae->extract( to => $deployDir ) or die $ae->error;
如果目标目录不存在,我怎么能强迫它死掉呢?模块中没有允许您禁用自动创建目录的功能,因此您只需在调用
extract
之前在单独的语句中检查它
-d $deployDir or die {Deployment directory "$deployDir" doesn't exist};
或者您可以使用并尝试将其作为目录打开。这样,系统将为您生成一条die
消息。像这样
{
use autodie;
opendir my ($dh), $deployDir;
}
这需要PerlV5.10.1或更高版本。代码周围需要大括号
{…}
。它们限制了autodie
的范围,并立即自动再次关闭目录句柄模块中没有任何内容允许您禁用自动创建目录,因此您只需在调用extract
之前在单独的语句中进行检查即可
-d $deployDir or die {Deployment directory "$deployDir" doesn't exist};
或者您可以使用并尝试将其作为目录打开。这样,系统将为您生成一条die
消息。像这样
{
use autodie;
opendir my ($dh), $deployDir;
}
这需要PerlV5.10.1或更高版本。代码周围需要大括号
{…}
。它们限制了autodie
的范围,并立即自动再次关闭目录句柄可以使用类似于:die“$deployDir不存在”的内容,除非-d$deployDir
可以使用类似于:die“$deployDir不存在”的内容,除非-d$deployDir