如果目录中的文件与某些命名法匹配,那么它将被处理。
我对以下代码有疑问:
if ($fichier =~ /0284\-\d{4}-\w{6}\.0284\.UPDREQ\.\d{4}\.\d{10}/)
{
my $msg = "Processing file is : $fichier \n";
Trace($EXP, __FILE__, __LINE__, "$msg");
}
if(!open (FILE, "< $fichier"))
{
my $cmd = "mv $REP_FLOTS/$fichier $REP_UPDREQ_ARCH/err_$fichier";
system("$cmd");
}
$lines++ while (<FILE>);
close FILE;
有时可以打开和阅读内容,但有时会失败。 我在这段代码中缺少什么?因为它有时很好。
答案 0 :(得分:7)
为什么不问系统本身出了什么问题?变量$!
保存以前系统调用的最后一个错误,因此如果打开失败,只需打印它:
if(!open (FILE, "< $fichier"))
{
warn "unable to open '$fichier' for reading: $!\n";
my $cmd = "mv $REP_FLOTS/$fichier $REP_UPDREQ_ARCH/err_$fichier";
system("$cmd");
}