如何有效的修改文本文件的某一行内容而不破坏其他内容

如何有效的修改文本文件的某一行内容而不破坏其他内容

如何有效的修改文本文件的某一行内容而不破坏其他内容
sub Delalert($) {

my $ref_test = shift || LogAndDie("No reference to an array of test");
my @testlist = @{$ref_test};
my $alertfile = "/home/hobtest/server/etc/hobbit-alerts.cfg";
foreach (@testlist){
my $mach = $_;print "$mach";
open (INFILE," > $alertfile") || die "can not open this file : $!";
while (<>){
s/$mach//;
print INFILE $_;


}
close INFILE;

}
修改后将整个的文件都清空了,这可不是我想要的。请各位指点!
两种方法
1。把文件全读进来,改一行,再写回去。
2。打开文件时用+<方式,然后seek到某个位置,再写。
FMTYEWTK About Mass Edits In Perl
http://www.perl.com/pub/a/2004/10/14/file_editing.html

这篇文章也许有帮助,大的文本文件内容的部分随机修改是 perl 的强项。
楼上的是用命令行模式来替.
楼上的是用命令行模式来替换文本内容的,无法达到楼主替换指定行的要求吧
take a look at:[url=http.
take a look at:[url=http://search.cpan.org/~mjd/Tie-File-0.96/lib/Tie/File.pm]Tie::File[/url]
and There Is More Than One Way To Do It.