我想删除文本文件中所有以HPL_开头的行。我已经实现了这一点,并且可以打印到屏幕上,但是当我尝试写入文件时,新文件中只会打印修改后文本的最后一行。请问有什么帮助吗?
open(FILE,"<myfile.txt");
@LINES = <FILE>;
close(FILE);
open(FILE,">myfile.txt");
foreach $LINE (@LINES) {
@array = split(/\:/,$LINE);
my $file = "changed";
open OUTFILE, ">$file" or die "unable to open $file $!";
print OUTFILE $LINE unless ($array[0] eq "HPL_");
}
close(FILE);
close (OUTFILE);
exit;
use strict; use warnings
的Perl代码。甚至尝试这样做纯属疯狂。在现代Perl编程环境中,您还需要使用use v5.12
或其他版本来标识您正在运行的Perl版本,并且如果您使用的是5.10.1或更高版本,则还需要使用use autodie
。否则,这将变得非常困难。 - tchrist