我想从文本文件中读取路径,并检查路径是否存在。如果路径存在,则保留文件中的条目,否则从同一文件中删除。下面的代码是错误的,其中一些现有的条目被删除以及
use strict;
use warnings;
my $file="/path/to/file.txt";
my @new_line_list;
open(FH1, "<", $file ) or die "Can't open file for reading: $!";
while(my $line = <FH1>){
chomp $line;
next if (!-d $line);
@new_line_list=$line;
}
close( FH1 );
# Rewrite file with the line removed
open(FH2, ">", $file ) or die "Can't open file for reading: $!";
foreach my $line ( @new_line_list) {
print FH2 $line;
}
close(FH2);
1条答案
按热度按时间jm81lzqq1#
问题就在这里:
你每次都覆盖了行列表。使用push:
另一种选择是写入不同的文件,并在完成时在原始文件上执行rename。