Perl检查文件是否打开

时间:2014-02-20 10:08:49

标签: perl

我有perl 5.005_30版本。

在执行任何操作之前,我需要检查“.doc”文件是否已被使用。

我写了以下代码。

my $doc = "D:\Test.doc";
eval{open FILE, ">$doc" or die "error"};
if($@) 
{
    my $ERR_MSG ="Could not open the file \"$doc\" !\n Please close the file if it is already open and try again !!\n";

    open (LOGFILE, '>>Logfile.txt');
    print LOGFILE "$ERR_MSG\n";
}
else
{
    close(FILE); // close the opened file and start operations on ".doc" file using MS word API.
    ...
    ...
}

使用此代码,如果“Test.doc”已经打开,它会在日志文件中输出错误消息,这是正常的。但是,如果“Test.doc”尚未打开,则open方法将打开.doc文件,并在关闭文件[“close(FILE)”]时的else条件中删除“Test.doc”的现有内容,文件变空了。

请告诉我如何在不清空其内容的情况下关闭文件。

1 个答案:

答案 0 :(得分:1)

这将覆盖它:

eval{open FILE, ">$doc" or die "error"};

您可以尝试将其打开以追加:

eval{open FILE, ">>$doc" or die "error"};