perl从文本文件中删除不存在的路径

vpfxa7rd  于 2023-05-07  发布在  Perl
关注(0)|答案(1)|浏览(128)

我想从文本文件中读取路径,并检查路径是否存在。如果路径存在,则保留文件中的条目,否则从同一文件中删除。下面的代码是错误的,其中一些现有的条目被删除以及

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);
jm81lzqq

jm81lzqq1#

问题就在这里:

@new_line_list=$line;

你每次都覆盖了行列表。使用push

push @new_line_list, $line;

另一种选择是写入不同的文件,并在完成时在原始文件上执行rename

相关问题