我有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”的现有内容,文件变空了。
请告诉我如何在不清空其内容的情况下关闭文件。
答案 0 :(得分:1)
这将覆盖它:
eval{open FILE, ">$doc" or die "error"};
您可以尝试将其打开以追加:
eval{open FILE, ">>$doc" or die "error"};