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