perl:有时无法打开文件进行阅读

时间:2013-04-08 11:23:42

标签: perl

如果目录中的文件与某些命名法匹配,那么它将被处理。

我对以下代码有疑问:

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;

有时可以打开和阅读内容,但有时会失败。 我在这段代码中缺少什么?因为它有时很好。

1 个答案:

答案 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");
}